曾經困擾了很久的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 同行
右括號 ) 后面加上續行操作符 ^
【完】