Поэтому я знаю по опыту, что запуск действительной программы из 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.
Кто-нибудь знает, где это поведение документировано Microsoft?