Windowsシェルには、シェル経由で実行されたプロセスの終了コードを見つけるための%ERRORLEVEL%変数があります。したがって、これを.batファイルで使用して、.batファイル内から呼び出す外部スクリプトの終了コードを取得することができます。私は呼び出しているプロセスからより豊富なエラー情報を返したい(最初のインスタンスではスタックトレース)。私は実行しているPythonスクリプトからこれを返したいと思います。これはPythonの 'traceback'モジュールを使って行うことができます。 %ERRORLEVEL%でこれを保持できますか?この変数のドキュメントはありますか?Windowsシェル%ERRORLEVEL%変数に文字数制限がありますか?
答えて
%ERRORLEVEL%
は、プログラムの終了コード、すなわちを返します。整数値であり、文字の制限はではありません。 wiki document for DOSで言及として:DOS用語で
、
errorlevel
は、実行可能プログラムまたはサブルーチンによって返される整数の終了コードです。 Errorlevelsは、典型的には0から255
の範囲Windows section of the same documentは言う:署名されたように、コマンドインタプリタは扱いが
Windowsは、終了コードとして、32ビット符号なし整数を使用します。
@LotPings - あなたはどこでそれを思いついたのですか?違います! EXIT/Bは負の値を返すことができ、%ERRORLEVEL%に正しく反映されます。 – dbenham
@dbenham私はローカル時間が02時であると誤った仮定をしているようです。ごめんなさい。 – LotPings
'%ERRORLEVEL%'は署名されており、255に制限されていません。Windowsの終了コードは32ビットの 'DWORD'です。通常、エラーコード自体は16ビット(0〜65535)です。これは、裸のWinAPIエラー番号の範囲です。存在する場合、終了コードの上位16ビットワードは、通常、['HRESULT'](https://msdn.microsoft.com/en-us/library/cc231198)または[' NTSTATUS' ](https://msdn.microsoft.com/en-us/library/cc231200)コード。特に、 'HRESULT'として返されるWinAPIエラーの上位ワードは '0x8007'であり、これは符号付きの値として負である。 – eryksun
文字列を返す場合は、%ERRORLEVEL%
に文字列を割り当てることはできません。 %ERRORLEVEL%
hereに関するドキュメントがあります。
あなたは環境変数を試すことができます。私はPythonをコードしませんが、Pythonでそれを行う方法があると確信していますし、バッチでそれらにアクセスできます。
また、発生するエラーを事前に知っている場合は、それぞれに数値を割り当ててから終了し、それぞれバッチ出力を持つことができます。しかし、それは退屈で本当に読めないので、あなたはそれをしたくないかもしれません。
- 1. .xmlファイルに文字数制限がありますか?
- 2. TFS REST APIの文字数に制限はありますか?
- 3. ManagementEventWatcherの文字数制限はありますか?
- 4. LUIS文字数の制限はありますか?
- 5. メイクファイルに変数のサイズに制限がありますか?
- 6. 絵文字でUITextViewの文字数制限が正しくありません
- 7. 文字列変数の制限
- 8. 変数/プロパティ名に使用できる文字数に制限はありますか?
- 9. 説明にはページの文字数の制限があります。 PHP
- 10. 辞書キーに文字制限がありますか?
- 11. TextBlockの文字数制限
- 12. フレックスリッチテキストエディタ - 文字数の制限
- 13. プライマリキーの文字数制限
- 14. CSSの1行あたりの文字数を制限する
- 15. 1行あたりの文字数を制限する
- 16. 数値入力フィールドの集まりの文字数の制限
- 17. ユーザーが入力できる文字数の制限がありません
- 18. SQL Serverは文字制限がありますか?
- 19. 1行あたりの文字数と1文字あたりの行数の制限
- 20. Perl:文字列の制限文字スカラー変数
- 21. Javaプログラムの文字列サイズに制限はありますか?
- 22. 最大セッション数には制限がありますか?
- 23. なぜポストダウンロード数に制限がありますか?
- 24. Watson Conversationのエンティティ値の数に制限がありますか
- 25. Pythonに数の制限がありますか?
- 26. Erlangの整数にはサイズ制限がありますか?
- 27. 制限文字を制限し、特別チャレターを迅速に制限する問題はありますか?
- 28. 無制限の文字列を整数に変換するAda
- 29. リッチテキストエディタの文字数を制限する
- 30. GUIDの文字数を制限する
エラーレベルは、プログラムの戻りコード**(別名:整数)です。どのメッセージもプログラムのエラーチャネルの出力ですが、その変数には保持されません。 – Simon
はい、サイモンが説明したように、あなたが 'exit'に渡す値は整数でなければなりません。スタックトレースは整数ではありません。 –
ありがとうございます。これはPythonからexit(3)を受け取り、エラーコードを通過しますが、Pythonから渡された完全なエラーメッセージはエラーチャネルに渡されるため、%ERRORLEVEL%では使用できません。私が必要とする解決策は、スクリプトからの応答をerror.logに出力することだと思います。私はバッチファイルを使って制限されているようです。 Powershellはエラー応答をより柔軟に処理するための柔軟性を提供します –