[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理goto语句标签是否需要加?

刚开始学批处理的时候,喜欢goto后面加上“:”,但后来发现在if 语句中 goto 是可以不用“:”的,因此很久都没有再加“:” .
但是今天写了一个简易的函数,用call调用,函数中存在goto eof语句,我习惯性的不加“:”于是报错了,加上之后正常运行。
我想请教一下,什么时候要加:什么时候可以不加:.是不是call语句有什么魔力,新手上路,请多多指点!

我也是新手,我只知道看goto/?和call/?
其中,goto 后面的标签不必使用冒号:   比如 goto lable
相反,call 后面的标签必须使用冒号:   比如 call :lable
另外,goto :eof 是一个被定义了的命令,类似于echo on/off。单独看echo命令是回显的意思,而echo off则变成了关闭回显。同样,goto命令是跳转的意思,而goto :eof则变成了返回的意思。
也就是,当goto或call跳转到一个新便签后,如果它需要自动返回,那么就在标签末尾使用goto :eof帮助返回——返回到批处理命令开始跳转标签的后面。

口诀:goto有去不回,call有去有回,goto :eof自动结束和返回。
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

不管是神马标签,统统加上冒号。不必纠结

TOP

回复 2# cjiabing


    OK 谢版主!

TOP

回复 3# gawk


    恩,加上百利而无一害

TOP

谢谢 cjiabing 版主!! 平日里还真没有注意到这个问题。

TOP

返回列表