无涯教程-批处理 - Nested If 语句函数

100 阅读2分钟

有时,要求彼此之间嵌入多个" if"语句。以下是此声明的一般形式。

if(condition1) if (condition2) do_something

因此,仅当满足condition1和condition2时,才会执行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" 

参考链接

www.learnfk.com/batch-scrip…