批處理if/else語句

下一個決策陳述是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"

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