Batch 基本编写方法记录

1 minute

读取输入

1set /p ch="y/n:"
2echo %ch%

变量运算

通过 %{var}% 访问变量,通过 /a 进行表达式计算设置值。

1@echo off
2
3set money=100
4echo 初始金额: %money%
5
6set /a money=%money%*2
7set /a money=%money%+100
8echo 现在的金额:%money%

选择并跳转

:{point} 用于指定一个跳转点。

 1@echo off
 2
 3set /p ch="y/n:"
 4if "%ch%"=="" (
 5    goto end
 6) else if "%ch%"=="n" (
 7    goto no
 8) else if "%ch%"=="y" (
 9    goto yes 
10) else (
11    goto end
12)
13
14:no
15echo NO
16goto end
17
18:yes
19echo YES
20goto end
21
22:end

循环语句

  • 通过 %%x 设置和访问循环值;
  • 通过 (start, steps, end) 设置循环;
  • /l 将通过比较 start 和 end 来执行迭代。
1@echo off
2
3for /l %%x in (1, 5, 100) do (
4    echo hello, jzh-%%x
5)

变量动态变化

  • setlocal enabledelayedexpansion 开启变量延迟,使得变量可以动态变化;
  • 需通过 !{var}! 访问变化中的量。
 1@echo off
 2@REM 开启变量延迟,使得变量可以动态变化
 3setlocal enabledelayedexpansion 
 4
 5set /a i=1
 6for /l %%i in (1, 1, 10) do (
 7	echo hello
 8	set /a i+=1
 9	echo !i!
10)
11echo %i%

接收参数

1@echo off
2rem %1 即 args[0]
3if "%1" == "a" echo open a.txt 
4
5if "%2" == "b" echo open b.txt

Reference