批处理脚本 - If 语句
第一个决策语句是"if"语句。 该语句在批处理脚本中的一般形式如下 −
if(condition) do_something
该语句的一般工作原理是首先在"if"语句中评估条件。 如果条件为 true,则执行语句。 下图显示了 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 echo "The value of variable c is 10" 计算结果为 false,因此语句的 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 语句的条件为 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"
❮ batch_script_decision_making.html