曾经困扰了很久的bat脚本,如果里面包含多种条件判断,就必须要试用if,else if,else的写法了。尝试了很久,终于找到规律:
第一种写法:最简单,就是写一行。
- @echo off
- rem 写一行比较简洁,缺点是每一种判断内不方便写多条语句
- set varA=B
- if "%varA%"=="A" (echo %varA% is A) else if "%varA%"=="B" (echo %varA% is B) else (echo %varA% is C)
-
- pause
第二种写法:可读性好的语法是分行写
- @echo off
- rem 在这种写法可读性好,也能执行多语句,但兼容性不太好
- set varA=B
- if "%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 off
- rem 可读性好,兼容性好
-
- setlocal EnableDelayedExpansion
- set option=2
- set sum=-1
-
- if %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 同行
右括号 ) 后面加上续行操作符 ^
【完】