Board logo

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

作者: 秋风·飞扬    时间: 2012-5-4 11:28     标题: [已解决]批处理goto语句标签是否需要加?

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

作者: cjiabing    时间: 2012-5-4 15:12

我也是新手,我只知道看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自动结束和返回。
作者: gawk    时间: 2012-5-4 16:48

不管是神马标签,统统加上冒号。不必纠结
作者: 秋风·飞扬    时间: 2012-5-4 21:01

回复 2# cjiabing


    OK 谢版主!
作者: 秋风·飞扬    时间: 2012-5-4 21:01

回复 3# gawk


    恩,加上百利而无一害
作者: poter    时间: 2012-5-4 21:23

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




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2