goto :eof作用 可能大家在看教程或者代码时,总是难免会碰到 goto :eof 这样一句代码,大家都知道,goto 就是跳转到的意思,goto 后面跟着的是标签,也就是用 : 定义的标签,但,一般见到的 goto 后面的标签都是没有 : 这个的,怎么这里却使用了呢? 而找遍所有代码都没发现有 :eof 或者 eof 的踪影,怎么这里能正常使用而不出错呢? 其实,:eof 是内置标签,所以,我们就可以不用定义而去使用它了 那么它又有什么用呢? 据我所知,它有两个作用,在不同的位置,有不同的作用 1、在主程序中使用 goto :eof 主程序,就是指 批文件 的主要部分,(大家都知道,批文件有主程序和子程序之分)如果是在主程序的最后使用 goto :eof ,那它的作用就是 退出批处理并关闭cmd窗口,这个没什么难理解的,作用相当于 exit(也不一定要在主程序最后,在主程序的任何位置使用 goto :eof 都是结束批文件并关闭cmd窗口) 2、在子程序中使用 goto :eof 上面说到了,批处理有主程序和子程序,子程序就是指,用 call 调用的部分,如 @echo off echo 欢迎来到 call :deepin pause goto :eof :deepin echo 深度软件分坛批处理技术讨论区 goto :eof 上面这个例子,主程序是指 @echo off echo 欢迎来到 call :deepin pause goto :eof 最后使用了 goto :eof ,因为是在主程序的最后使用,所以,它的作用就是退出批处理并关闭cmd窗口 下面的 :deepin echo 深度软件分坛批处理技术讨论区 goto :eof 就可以说是这个批文件的子程序了,由主程序中的 call 调用,最下面,也用到了 goto :eof ,那么它的作用又是什么,是否跟上面的一样呢? 肯定不一样啦,如果一样,还要说吗?呵呵…… 它的作用就是:结束当前子程序并把控制权交还给调用它的主程序以便主程序继续执行下面的命令(我晕,这句乍就这么拗口) 啥意思呢? 看上面例子,结束子程序,就是结束 由 deepin 定义的子程序,如上面的 echo 深度软件分坛批处理技术讨论区 把控制权交还给调用它的主程序,就是哪个调用它就把它还给哪个,好让它继续执行下面的代码 如果上面例子,就是返回到 call :deepin 这一句,然后继续执行下面的 pause以及接下来的代码 其实,说白了,就是执行完了这个子程序后就回到调用它的主程序然后继续执行它下面的代码 明白了没呢 主程序、子程序,都是相对而言的,没有一个明确的界定 如: @echo off echo 欢迎来到 call :deepin pause goto :eof :deepin echo 深度软件分坛 call :bat goto :eof :bat 本文来源:https://www.wddqw.com/doc/5c303ee89dc3d5bbfd0a79563c1ec5da50e2d635.html