成功后哪个cmd.exe内部命令将ERRORLEVEL清除为0?
在Windows批处理脚本中处理错误的常用方法是使用if errorlevel 1 ...
或等if %errorlevel% neq 0 ...
。通常,人们希望错误处理代码保留ERRORLEVEL。
我相信所有外部命令总是会导致ERRORLEVEL被设置为某个值,因此错误处理代码必须在执行外部命令之前在环境变量中保留ERRORLEVEL。
但内部命令怎么样?问题是,一些内部命令在成功时将ERRORLEVEL清除为0,而有些则没有。而且我找不到任何指定哪些命令做什么的文档。
所以问题是,哪些内部命令成功后将ERRORLEVEL清除为0?这不是关于返回的ERRORLEVEL代码的一般问题,而是关于成功结果的严格问题。
注意: 多年来我一直很好奇。所以我最终决定进行一系列实验并得出一个明确的答案。我发布此问答来分享我发现的内容。
鸿蒙传说