したがって、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
私は何年もバッチ スクリプトを書いてきましたが、常にこのように動作していました。ただし、誰かがこの手法の互換性 (前方および後方の両方) について質問しており、ファイルまたはプログラムが見つからない場合に 9009 をエラーレベルとして実際に定義している Microsoft の公式ドキュメントを見つけることができません。最も近いのはこのサイト ( http://msdn.microsoft.com/en-us/library/ms681381(v=vs.85).aspx ) で、残念ながら 9009 が DNS エラーとしてリストされています。
この動作がマイクロソフトによって文書化されている場所を知っている人はいますか?