下一個決策陳述是if/else
語句。 以下是本聲明的一般形式。
if (condition) (do_something) ELSE (do_something_else)
上述語句首先在“if”
語句中評估一個條件。 如果條件為真,則執行後面的語句,並在else
條件之前停止並退出迴圈。 如果條件為false
,則執行else
語句塊中的語句,然後退出迴圈。 下圖顯示了'if'
語句的流程。
檢查變數
就像批處理腳本中的“if”
語句一樣,if-else
也可以用於檢查在批處理腳本中設置的變數。 字串和數字都可以對“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") else (echo "Unknown value")
if %c%==10 (echo "The value of variable c is 10") else (echo "Unknown value")
關於上述程式,有幾點需要說明 -
- 每個
“if else”
代碼放在括弧()
中。 如果括弧不是用於分隔"if"
和"else"
代碼的代碼,那麼如果else
語句不成立,那麼這些語句就不會有效。 - 在第一個
“if else”
語句中,if
條件將評估為true
。 - 在第二個
“if else”
語句中,else
條件將被執行,因為條件將被評估為false
。
以上命令產生以下輸出 -
"The value of variable c is 15"
"Unknown value"
檢查字串變數
對於字串可以重複相同的示例。 以下示例顯示如何將“if else”
語句用於字串。
@echo off
SET str1=String1
SET str2=String2
if %str1%==String1 (echo "The value of variable String1") else (echo "Unknown value")
if %str2%==String3 (echo "The value of variable c is String3") else (echo "Unknown value")
關於上述有幾點需要注意 -
- 第一個
“if”
語句檢查變數str1
的值是否包含字串“String1”
。 如果是這樣,那麼它會在命令提示符下回顯一個字串。 - 由於第二個
“if”
語句的條件評估為false
,所以語句的echo
部分將不會被執行。
以上命令產生以下輸出 -
"The value of variable String1"
"Unknown value"
檢查命令行參數'if else'
語句也可以用於檢查命令行參數。 以下示例顯示如何使用“if”
語句來檢查命令行參數的值。
@echo off
echo %1
echo %2
echo %3
if %1%==1 (echo "The value is 1") else (echo "Unknown value")
if %2%==2 (echo "The value is 2") else (echo "Unknown value")
if %3%==3 (echo "The value is 3") else (echo "Unknown value")
如果上面的代碼被保存在一個名為test.bat
的檔中,則程式被執行為 -
test.bat 1 2 4
以下將是上述代碼的輸出 -
1
2
4
"The value is 1"
"The value is 2"
"Unknown value"
if defined
“if”
語句的一個特例是“if defined”
,用於測試變數是否存在。 以下是聲明的一般語法。
if defined somevariable somecommand
以下是如何使用“if defined”
語句的示例。
@echo off
SET str1=String1
SET str2=String2
if defined str1 echo "Variable str1 is defined"
if defined str3 (echo "Variable str3 is defined") else (echo "Variable str3 is not defined")
以下將是上述代碼的輸出 -
"Variable str1 is defined"
"Variable str3 is not defined"
if exists“if”
語句的另一個特例是“if exists”
,用於測試檔是否存在。 以下是聲明的一般語法。
If exist somefile.ext do_something
以下是如何使用“if exists”
語句的示例。
@echo off
if exist C:\set2.txt echo "File exists"
if exist C:\set3.txt (echo "File exists") else (echo "File does not exist")
假設在C驅動器中有一個名為set2.txt
的檔,並且沒有名為set3.txt
的檔。 那麼,以下將是上述代碼的輸出。
"File exists"
"File does not exist"