mportant;">曾经困扰了很久的bat脚本,如果里面包含多种条件判断,就必须要试用if,else if,else的写法了。尝试了很久,终于找到规律:
第一种写法:最简单,就是写一行。
@echo offrem 写一行比较简洁,缺点是每一种判断内不方便写多条语句set varA=Bif "%varA%"=="A" (echo %varA% is A) else if "%varA%"=="B" (echo %varA% is B) else (echo %varA% is C)pause
第二种写法:可读性好的语法是分行写
@echo offrem 在这种写法可读性好,也能执行多语句,但兼容性不太好set varA=Bif "%varA%"=="A" ( echo %varA% is A echo AAA) else if "%varA%"=="B" ( echo %varA% is B echo BBB) else ( echo %varA% is C echo CCC)pause
第三种写法:可读性好的语法是分行写的加强版
@echo offrem 可读性好,兼容性好setlocal EnableDelayedExpansionset option=2set sum=-1if %option% == 3 (
echo three
set /a sum=%option%*%option%*%option%) ^else if %option% == 2 (
echo two
set /a sum=2*%option%) ^else if %option% == 1 (
echo one
set /a sum=%option%
) ^else (
echo zero
set /a sum=0
)echo sum = !sum!pause
分行书写总结规则:
if 语句与左括号 ( 同行
右括号 ) 不与 else if 同行
右括号 ) 后面加上续行操作符 ^
【完】