区别 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
命令)。
我是批处理脚本的新手。你能告诉我有什么区别吗
在 goto :eof
和 :eof
之间?为什么有些人用感叹号写 !ERRORLEVEL!
?
很抱歉提出这个菜鸟问题,但我还找不到答案。 谢谢!
:eof
是对 End Of File 的引用,一个虚拟标签(不需要定义)跳转到当前批处理上下文的位置。
goto
是用于跳转(中断当前流程并在另一个命名点继续)到标签
goto :eof
是跳转到文件末尾
errorlevel
是保存最后执行的命令的退出代码的变量名(如果它设置的话)
如果要检索此变量中的值,请使用 %errorlevel%
。
但是,因为在批处理文件中,变量在解析时被替换为它的值(请阅读 here),有时需要向解析器指示不应该这样做并延迟扩展语法被使用,所以直到执行命令的那一刻,变量读取操作才被替换。向解析器指示它的语法是 !errorlevel!
已启用延迟扩展(setlocal enabledelayedexpansion
命令)。