所以我从经验中知道,从 cmd.exe 运行有效程序并检查 %errorlevel% 将返回 0:
C:\>dir logo.bmp
Volume in drive C has no label.
Volume Serial Number is 5283-A7A2
Directory of C:\
05/22/2008 12:43 PM 1,440,054 logo.bmp
1 File(s) 1,440,054 bytes
0 Dir(s) 71,723,995,136 bytes free
C:\>echo %errorlevel%
0
同样,尝试执行一个不存在的命令然后检查 %errorcode% 会给我一个 9009:
C:\>idontexist.exe
'idontexist.exe' is not recognized as an internal or external command,
operable program or batch file.
C:\>echo %errorlevel%
9009
多年来我一直在编写批处理脚本,它们一直以这种方式工作。但是,有人询问了有关该技术的兼容性(向前和向后)的问题,我找不到任何来自 Microsoft 的官方文档实际上将 9009 定义为找不到文件或程序时的错误级别。我最接近的是这个站点(http://msdn.microsoft.com/en-us/library/ms681381(v=vs.85).aspx),不幸的是,它将 9009 列为 DNS 错误。
有谁知道微软在哪里记录了这种行为?