有时候,要求有多个嵌入的“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
执行将跳过“一些命令”,并开始“其他一些命令”。 标签可以是脚本中任何地方的一行,包括在“goto”
命令之前。“if”
语句中经常出现“goto”
命令。 例如,可能有一个类型的命令 -
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"
执行上面示例代码,得到以下结果 -
"The value of a is 5"