暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Bat批处理命令中的goto命令

ITPro进化论 2023-04-20
48

常规的Bat批处理命令是按照自上而下的顺序逐行执行的,第一行命令执行之后,才能执行第二行,第二行命令执行后,才能执行第三行...以此类推,但有时候我们需要根据不同的条件,改变命令默认的自上而下的执行顺序,这就需要用到跳转命令goto了。

goto命令,将 cmd.exe 定向到批处理程序中带标签的行。

语法格式:GOTO label

label 指定批处理程序中用作标签的文字字符串。标签必须单独一行,并且以冒号打头

注意事项:

  • goto命令与标签是一一对应的
    ,一个goto对应一个标签,只有goto没有标签,批处理脚本运行到goto就直接退出了,有标签没有goto命令,这个标签的命令行永远无法执行。
  • 多个标签的情况下,注意是否需要在标签间添加退出语句来终止脚本继续向下执行。
  • 标签名只能是常量,不能是变量

实例:根据输入字母A或B显示对应的信息

@echo off
set /p input=请输入字母A或B:
if "%input%"=="A" goto A
if "%input%"=="B" goto B
echo 您没有输入字母或者输入的不是A或B
PAUSE 
exit

REM 定义标签A
:A
echo Apple
PAUSE 
exit

REM 定义标签B
:B
echo Banana
PAUSE
exit

运行结果:

exit意思是退出,第一个exit和:A标签后面的exit都不能省略,如果省略,脚本运行就会出现问题,假如输入的字母不是A或B,执行“echo 您没有输入字母或者输入的不是A或B”,按任意键继续后,会执行:A标签里的命令,同理:A标签后面删掉exit后,:A标签里的命令执行完,按任意键继续后,并不会退出批处理程序,所以要加上exit来终止程序继续向下执行。

如果标签名重复了,goto只会跳转到对应的第一个标签,后续的重复的标签命令不会执行。

实例:

set p input=请输入字母A或B:
if "%input%"=="A" goto A
if "%input%"=="B" goto B
echo 您没有输入字母或者输入的不是A或B
PAUSE
exit

REM 定义标签A
:A
echo Apple
PAUSE
exit

REM 定义标签B
:A
echo Banana
PAUSE
exit

运行结果:


文章转载自ITPro进化论,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论