我是批处理脚本的新手。你能告诉我有什么不同吗?
在goto :eof
和:eof
之间?为什么有些人会用感叹号写!ERRORLEVEL!
?
抱歉这个noob问题,但我还没找到答案。 谢谢!
答案 0 :(得分:1)
:eof
是对End Of File的引用,是一个虚拟标签(不需要定义)跳转到结束当前批处理上下文的位置。
goto
是一个用于跳转(中断当前流并在另一个命名点继续)到标签的命令
goto :eof
跳转到文件的末尾
errorlevel
是一个变量的名称,它保存最后执行的命令的退出代码(如果它设置了它)
如果要检索此变量中的值,请使用%errorlevel%
。
但是,在批处理文件中,变量在解析时被替换为其值(请阅读here),有时需要向解析器指示不应该执行此操作并使用延迟扩展语法,因此在执行命令之前不会替换变量读取操作。向解析器指示它的语法是!errorlevel!
启用了延迟扩展(setlocal enabledelayedexpansion
命令)。