批处理脚本 - If 语句

第一个决策语句是"if"语句。 该语句在批处理脚本中的一般形式如下 −

if(condition) do_something

该语句的一般工作原理是首先在"if"语句中评估条件。 如果条件为 true,则执行语句。 下图显示了 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 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