批处理脚本 - 嵌套 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"

If errorlevel

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

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

if errorlevel n somecommand

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

Goto 语句

通常,批处理文件的执行是逐行进行的,每行上的命令依次运行。 然而,通常希望执行批处理文件的特定部分,同时跳过其他部分。 跳转到特定部分的能力是由适当命名的"goto"命令(写为一个单词)提供的。 目标部分在开头标有一行,该行的名称带有前导冒号。 因此脚本看起来像 −

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

执行将跳过"some commands"并从"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.html