批处理脚本 - If/else 语句
下一个决策语句是 If/else 语句。 以下是该语句的一般形式。
If (condition) (do_something) ELSE (do_something_else)
该语句的一般工作原理是首先在"if"语句中评估条件。 如果条件为 true,则执行其后的语句,并在 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"代码,则这些语句将不是有效的正确的 if 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"
❮ batch_script_decision_making.html