第一個決策語句是if
語句。 批次處理指令碼中if
語句的一般形式如下所示 -
if(condition) do_something
本宣告的一般工作是首先在if
語句中評估一個條件。如果條件為真,則執行語句。 下圖顯示了if
語句的流程。
檢查變數
批次處理指令碼中'if'
語句的常見用法之一是檢查在批次處理指令碼中設定的變數。 字串和數位都可以對if
語句進行評估。
檢查整型變數
以下範例顯示如何將「if」
語句用於數位。
@echo off
SET /A a=5
SET /A b=10
SET /A c=%a% + %b%
if %c%==15 echo "The value of variable c is 15"
if %c%==10 echo "The value of variable c is 10"
關於上述程式有兩點需要說明 -
「if」
語句檢查變數c
的值是否為15
。如果是這樣,那麼它將回顯一個字串到命令提示字元。if %c% == 10
則列印變數c
的值為10
,但評估結果為false
,所以此語句的echo
部分將不會執行。以上命令產生以下輸出 -
The value of variable c is 15
檢查字串變數
以下範例顯示如何將if
語句用於字串。
@echo off
SET str1=String1
SET str2=String2
if %str1%==String1 echo "The value of variable String1"
if %str2%==String3 echo "The value of variable c is String3"
關於上述程式有兩點需要說明 -
str1
的值是否包含字串「String1」
。 如果是,那麼它會在命令提示字元下回顯一個字串。「if」
語句的條件評估為false
,所以語句的echo部分將不會被執行。以上命令產生以下輸出 -
The value of variable String1
要注意的是,'if'
語句中的評估是「區分大小寫的」,與上面相同的程式稍作修改,如下例所示:在第一個語句中,我們改變了比較標準,以下程式的輸出將不會產生任何結果。
@echo off
SET str1=String1
SET str2=String2
if %str1%==StrinG1 echo "The value of variable String1"
if %str2%==String3 echo "The value of variable c is String3"
檢查命令列引數「if」
語句的另一個常見用途是用來檢查傳遞給批次處理檔案的命令列引數的值。 以下範例顯示如何使用「if」
語句來檢查命令列引數的值。
@echo off
echo %1
echo %2
echo %3
if %1%==1 echo "The value is 1"
if %2%==2 echo "The value is 2"
if %3%==3 echo "The value is 3"
關於上述程式有兩點需要說明 -
3
個命令列引數。如果上面的程式碼被儲存在一個名為test.bat
的檔案中並且程式被執行為 -
test.bat 1 2 3
以下將是上述程式的輸出結果 -
1
2
3
"The value is 1"
"The value is 2"
"The value is 3"