批处理if/else语句

下一个决策陈述是if/else语句。 以下是本声明的一般形式。

if (condition) (do_something) ELSE (do_something_else)
Bat

上述语句首先在“if”语句中评估一个条件。 如果条件为真,则执行后面的语句,并在else条件之前停止并退出循环。 如果条件为false,则执行else语句块中的语句,然后退出循环。 下图显示了'if'语句的流程。

检查变量

就像批处理脚本中的“if”语句一样,if-else也可以用于检查在批处理脚本中设置的变量。 字符串和数字都可以对“if”语句进行评估。

检查整型变量
以下示例显示如何将“if”语句用于数字。

@echo off SET /A a=5 SET /A b=10SET /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")
Bat

关于上述程序,有几点需要说明 -

  • 每个“if else”代码放在括号()中。 如果括号不是用于分隔"if""else"代码的代码,那么如果else语句不成立,那么这些语句就不会有效。
  • 在第一个“if else”语句中,if条件将评估为true
  • 在第二个“if else”语句中,else条件将被执行,因为条件将被评估为false

以上命令产生以下输出 -

"The value of variable c is 15" "Unknown value"
Shell

检查字符串变量
对于字符串可以重复相同的示例。 以下示例显示如何将“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")
Bat

关于上述有几点需要注意 -

  • 第一个“if”语句检查变量str1的值是否包含字符串“String1”。 如果是这样,那么它会在命令提示符下回显一个字符串。
  • 由于第二个“if”语句的条件评估为false,所以语句的echo部分将不会被执行。

以上命令产生以下输出 -

"The value of variable String1" "Unknown value"
Bat

检查命令行参数
'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")
Bat

如果上面的代码被保存在一个名为test.bat的文件中,则程序被执行为 -

test.bat 1 2 4
Shell

以下将是上述代码的输出 -

1 2 4 "The value is 1" "The value is 2" "Unknown value"
Bat

if defined

“if”语句的一个特例是“if defined”,用于测试变量是否存在。 以下是声明的一般语法。

if defined somevariable somecommand
Bat

以下是如何使用“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")
Bat

以下将是上述代码的输出 -

"Variable str1 is defined" "Variable str3 is not defined"
Bat

if exists
“if”语句的另一个特例是“if exists”,用于测试文件是否存在。 以下是声明的一般语法。

If exist somefile.ext do_something
Bat

以下是如何使用“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")
Bat

假设在C驱动器中有一个名为set2.txt的文件,并且没有名为set3.txt的文件。 那么,以下将是上述代码的输出。

"File exists""File does not exist"
Shell

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

  • Java技术群: 227270512 (人数:3000)
  • Go开发者群(新): 851549018 (人数:2000)
  • PHP开发者群: 460153241 (人数:2000)
  • MySQL/SQL群: 418407075 (人数:2000)
  • 大数据开发群: 655154550 (人数:2000)
  • Python技术群: 287904175 (人数:2000)
  • 人工智能深度学习: 456236082 (人数:2000)
  • 测试工程师群: 415553199 (人数:2000)
  • 前端开发者群: 410430016 (人数:2000)
  • C/C++技术群(新): 629264796 (人数:2000)
  • Node.js技术群(新): 621549808 (人数:2000)
  • PostgreSQL数据库群: 539504187 (人数:2000)
  • Linux运维技术群: 479429477 (人数:2000)
  • Oracle数据库: 175248146 (人数:2000)
  • C#/ASP.Net开发者: 630493968 (免费,人数:2000)
  • 数据分析师群: 397883996 (人数:2000)
(0)

相关推荐