有時候,要求有多個嵌入的「if」
語句。 以下是本宣告的一般形式。
if(condition1) if (condition2) do_something
所以只有當條件1
和條件2
都滿足時,才會執行do_something
塊中的程式碼。
以下是如何使用巢狀if
語句的範例。
@echo off
SET /A a=5
SET /A b=10
if %a%==5 if %b%==10 echo "The value of the variables are correct"
以上命令產生以下輸出。
"The value of the variables are correct"
if errorlevel
另一個特例是「if errorlevel」
,它用於測試執行的最後一個命令的退出程式碼。 各種命令發出整數退出程式碼來表示命令的狀態。 通常,如果命令成功完成,則命令通過傳遞0
;如果命令失敗,命令通過傳遞1
。
以下是此語句的一般語法。
if errorlevel n somecommand
其中「n」
是整數退出碼之一。
一般來說,批次處理檔案的執行是逐行進行的,每行依次執行命令。 但是,通常希望在跳過其他部分的同時執行批次處理檔案的特定部分。 跳轉到特定部分的能力由「goto」
命令(寫成一個字)提供。 目標部分在開頭用帶冒號的名稱標註。 因此,程式碼看起來像 -
...
goto :label
...some commands
:label
...some other commands
執行將跳過「一些命令」,並開始「其他一些命令」。 標籤可以是指令碼中任何地方的一行,包括在「goto」
命令之前。「if」
語句中經常出現「goto」
命令。 例如,可能有一個型別的命令 -
if (condition) goto :label
以下是如何使用goto
語句的範例。
@echo off
SET /A a=5
if %a%==5 goto :labela
if %a%==10 goto :labelb
:labela
echo "The value of a is 5"
exit /b 0
:labelb
echo "The value of a is 10"
執行上面範例程式碼,得到以下結果 -
"The value of a is 5"