cmd.exe%errorlevel%9009的官方MS参考

AWT*_*AWT 14 cmd batch-file errorlevel

所以我从经验中知道从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
Run Code Online (Sandbox Code Playgroud)

同样,尝试执行不存在的命令然后检查%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
Run Code Online (Sandbox Code Playgroud)

我多年来一直在编写批处理脚本,他们一直都是这样做的.但是,有人提出了有关此技术的兼容性(向前和向后)的问题,我找不到Microsoft的任何官方文档,实际上在找不到文件或程序时将9009定义为错误级别.我最近的是这个网站(http://msdn.microsoft.com/en-us/library/ms681381(v=vs.85).aspx),不幸的是,它列出了9009作为DNS错误.

有谁知道微软记录这种行为的位置?

Mar*_*ark 17

Exchange团队推出了一个Common Error Lookup Tool,它将为您翻译错误代码(包括HRESULT,这很方便).9009的输出是:

# for decimal 9009 / hex 0x2331 :
  MSG_DIR_BAD_COMMAND_OR_FILE                                   cmdmsg.h       
# '%1' is not recognized as an internal or external command,
# operable program or batch file.
  SQL_9009_severity_10                                          sql_err        
# Cannot shrink log file %d (%s) because of minimum log space
# required.
  DNS_ERROR_RCODE_NOTAUTH                                       winerror.h     
# DNS server not authoritative for zone.
# for hex 0x9009 / decimal 36873 :
  SSLEVENT_NO_CIPHERS_SUPPORTED                                 lsapmsgs.mc    
# No suitable default server credential exists on this
# system. This will prevent
# server applications that expect to make use of the system
# default credentials
# from accepting SSL connections. An example of such an
# application is the directory
# server. Applications that manage their own credentials,
# such as the internet
# information server, are not affected by this.
# 4 matches found for "9009"
Run Code Online (Sandbox Code Playgroud)

...所以你要找的是cmdmsg.h.

它本身并不是真正的文档,但它至少是正式的.

  • 它直接来自微软,所以它在这个意义上是"官方的",并且会做我需要的.我忘记了在封闭源系统中查找信息是多么困难 - 多年来使用开源已经让我感到厌烦.再次感谢! (3认同)