批处理脚本 - 嵌套 If 语句



有时,需要在彼此内部嵌套多个“if”语句。以下是此语句的一般形式。

if(condition1) if (condition2) do_something

因此,只有在满足条件1和条件2时,才会执行do_something块中的代码。

以下是如何使用嵌套if语句的示例。

示例

@echo off
SET /A a = 5
SET /A b = 10
if %a%==5 if %b%==10 echo "The value of the variables are correct"

输出

以上命令产生以下输出。

"The value of the variables are correct"

如果 errorlevel

另一种特殊情况是“if errorlevel”,它用于测试最后运行的命令的退出代码。各种命令发出整数退出代码来表示命令的状态。通常,如果命令成功完成,则命令传递0,如果命令失败,则传递1。

以下是此语句的一般语法。

if errorlevel n somecommand

其中“n”是整数退出代码之一。

Goto 语句

通常,批处理文件的执行按行进行,每行上的命令依次运行。但是,通常需要执行批处理文件的特定部分,同时跳过其他部分。通过恰当命名的“goto”命令(写成一个词)提供了跳到特定部分的功能。目标部分用开头带有名称的行标记,该名称前面带有冒号。因此,脚本如下所示:

... 
goto :label 
...some commands 
:label 
...some other commands

执行将跳过“某些命令”,并从“其他一些命令”开始。标签可以是脚本中任何位置的一行,包括“goto”命令之前。“Goto”命令通常出现在“if”语句中。例如,您可能有一个类型的命令:

if (condition) goto :label

以下是如何使用goto语句的示例。

示例

@echo off 
SET /A a = 5 

if %a%==5 goto :labela 
if %a%==10 goto :labelb

:labela 
echo "The value of a is 5" 

exit /b 0

:labelb 
echo "The value of a is 10"

关于以上程序需要注意的关键事项是:

  • 标签的代码语句应位于标签声明的下一行。

  • 您可以在批处理文件中定义多个goto语句及其相应的标签。

  • 标签声明可以在文件的任何位置。

输出

以上命令产生以下输出。

"The value of a is 5" 
batch_script_decision_making.htm
广告