批處理指令碼 - If 語句



第一個決策語句是“if”語句。批處理指令碼中此語句的一般形式如下:

if(condition) do_something

此語句的一般工作原理是,首先在“if”語句中評估條件。如果條件為真,則執行語句。下圖顯示了if語句的流程。

If Statement

檢查變數

批處理指令碼中“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 echo "The value of variable c is 10 中的條件評估為假,因此語句的echo部分將不會執行。

輸出

上述命令產生以下輸出。

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"

關於上述程式的關鍵要點是:

  • 第一個“if”語句檢查變數str1的值是否包含字串“String1”。如果是,則它將字串回顯到命令提示符。

  • 由於第二個“if”語句的條件評估為假,因此語句的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"
batch_script_decision_making.htm
廣告