- ベストアンサー
コマンドプロンプトでエラー番号を取得する方法と注意点
- バッチファイルを使用してコマンドを実行中に発生したエラーの番号を取得する方法について説明します。
- ネットワークの電源が切れている場合や既に割り当てられたドライブ文字を使用している場合など、エラー番号を取得することで問題の回復が可能な場合があります。
- 具体的なコマンドとエラー番号の取得方法について詳しく説明します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
バッチファイルの問題では無くバッチファイルから呼び出されるコマンド(プログラム)の問題のように思います。 コマンドがどのようなエラーを返してくるかによって次の処理を考えれば済むことでしょう。 場合によっては帰ってきた終了コードをファイルに書き込んで次の段階でその内容を読み返すのは如何ですか? あなたの力量なら考え方を提示すれば処理出来ると推察します。
その他の回答 (1)
- chie65536(@chie65535)
- ベストアンサー率44% (8802/19961)
バッチでは、起動したプログラムの終了コードを「ある数値かどうか」を判定できます。 ex. IF ERRORLEVEL EQU 102 GOTO ERR102 注:EQU演算子は一部のWINDOWSでは使用できません。 ただし、NETコマンドが「エラー番号と同一の終了コードを返す保証はない」ので、IFコマンドを使用出来るかどうかは保証できません。 つまり、コマンドによっては「成功したら0、失敗したら255を返し、エラーの中身が判らない」って事もありえる訳です。 ご質問のようなケースでは、Y:に必ず存在する筈のファイルの存在を確認するのが良いでしょう。 ex. IF NOT EXIST Y:\ GOTO NETERROR 注:Y:\に何らかのファイル(フォルダのみでは駄目)が無いと「存在しない」と言う判定になります。 こうすると、Y:\にファイルが存在しない場合、NETERRORとラベルの付いた行に移行します。
補足
回答に感謝しますが、ERRORLEVELは、エラー番号と違います。エラー番号は、かなり具体的なエラーを区別できますが、ERRORLEVELは、大雑把なくくりを示すだけで、私が例示した具体的なエラーを識別することはできません。 ご親切な記載にも感謝ですが、 if 文は承知しております。私が必要なのは、エラー番号を取得する子方法ですので、取得の方法が有れば教えてください。
お礼
回答、有難うございます。すっかり勘違いしていました。返って来るエラーコードは、コマンドプロンプトからではなく、プログラムからでしたね。年のせいでモウロクしたようです。