批处理脚本 - If 语句



第一个决策语句是“if”语句。批处理脚本中此语句的一般形式如下:

if(condition) do_something

此语句的一般工作原理是,首先在“if”语句中评估条件。如果条件为真,则执行语句。下图显示了if语句的流程。

If Statement

检查变量

批处理脚本中“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 中的条件评估为假,因此语句的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”语句的条件评估为假,因此语句的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.htm
广告