批次處理巢狀if語句

2019-10-16 22:59:44

有時候,要求有多個嵌入的「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」命令(寫成一個字)提供。 目標部分在開頭用帶冒號的名稱標註。 因此,程式碼看起來像 -

... 
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"