批處理if語句

第一個決策語句是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"

關於上述程式有兩點需要說明 -

  • 第一個“if”語句檢查變數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"

上一篇: 批處理決策結構 下一篇: 批處理運算符