区别 goto :eof 和 :eof

difference goto :eof and :eof

我是批处理脚本的新手。你能告诉我有什么区别吗 在 goto :eof:eof 之间?为什么有些人用感叹号写 !ERRORLEVEL!

很抱歉提出这个菜鸟问题,但我还找不到答案。 谢谢!

:eof 是对 End Of File 的引用,一个虚拟标签(不需要定义)跳转到当前批处理上下文的位置。

goto 是用于跳转(中断当前流程并在另一个命名点继续)到标签

的命令

goto :eof是跳转到文件末尾

errorlevel 是保存最后执行的命令的退出代码的变量名(如果它设置的话)

如果要检索此变量中的值,请使用 %errorlevel%

但是,因为在批处理文件中,变量在解析时被替换为它的值(请阅读 here),有时需要向解析器指示不应该这样做并延迟扩展语法被使用,所以直到执行命令的那一刻,变量读取操作才被替换。向解析器指示它的语法是 !errorlevel! 已启用延迟扩展(setlocal enabledelayedexpansion 命令)。