批處理指令碼 - 巢狀 If 語句



有時,需要在彼此內部巢狀多個“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"

如果 errorlevel

另一種特殊情況是“if errorlevel”,它用於測試最後執行的命令的退出程式碼。各種命令發出整數退出程式碼來表示命令的狀態。通常,如果命令成功完成,則命令傳遞0,如果命令失敗,則傳遞1。

以下是此語句的一般語法。

if errorlevel n somecommand

其中“n”是整數退出程式碼之一。

Goto 語句

通常,批處理檔案的執行按行進行,每行上的命令依次執行。但是,通常需要執行批處理檔案的特定部分,同時跳過其他部分。透過恰當命名的“goto”命令(寫成一個詞)提供了跳到特定部分的功能。目標部分用開頭帶有名稱的行標記,該名稱前面帶有冒號。因此,指令碼如下所示:

... 
goto :label 
...some commands 
:label 
...some other commands

執行將跳過“某些命令”,並從“其他一些命令”開始。標籤可以是指令碼中任何位置的一行,包括“goto”命令之前。“Goto”命令通常出現在“if”語句中。例如,您可能有一個型別的命令:

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"

關於以上程式需要注意的關鍵事項是:

  • 標籤的程式碼語句應位於標籤宣告的下一行。

  • 您可以在批處理檔案中定義多個goto語句及其相應的標籤。

  • 標籤宣告可以在檔案的任何位置。

輸出

以上命令產生以下輸出。

"The value of a is 5" 
batch_script_decision_making.htm
廣告