- ベストアンサー
バッチファイルが不正終了してしまう行をつきとめたい
長いバッチファイルを実行中、途中で不正終了してしまう場合に、そのバッチファイルの何行目を実行した時に不正終了したのかをつきとめたいのですが、何か方法はあるでしょうか。 又は、現在バッチファイルの何行目であるかを表示するコマンド等無いでしょうか。 ご存知の方がおられましたら、宜しくお願い致します。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
最後の行にpauseかcmd.exe /k プログラム名 とすると閉じませんので、ダブルクリックで起動して閉じない設定にできます。
その他の回答 (4)
- notnot
- ベストアンサー率47% (4900/10358)
>DOS窓自体が閉じてしまう様な不正終了の場合は特定が困難です。 もしかして、バッチファイルをダブルクリックして実行していますか? そうじゃなくて、コマンドプロンプトを開いて、バッチファイル名を打ち込んで実行してください。 そうやればエラーで閉じてしまうことはないのでecho offしてなければわかります。
お礼
ご回答、ありがとうございます。 お教え頂いた通りにやってみましたら、見事に自分が求めていた動作をしてくれました。ありがとうございました。 ただ、これはやはり、一度コマンドプロンプトを起動して、バッチファイルのパスを打ち込むか、D&Dして実行するかしないといけないのですよね。 ショートカットから実行してみたのですが、うまく動作してくれなかったので、毎回コマンドプロンプトを起動して、バッチファイルを実行しないといけないのですよね。 エラーをつきとめるまで、しばらくこの方法でやってみようと思います。 これでうまく行きそうな気がします。 ご回答、本当にありがとうございました。
- kawais070
- ベストアンサー率52% (2242/4283)
お礼
ご回答、ありがとうございます。 お教え頂いたツールを試してみたのですが、DOS窓は不正終了せず続いているのに、ツール側で「何かのエラーです。」というダイアログが何度も表示されてしまって、残念ながらうまく行きませんでした。 わざわざ探して下さり、本当にありがとうございまいました。
- bin-chan
- ベストアンサー率33% (1403/4213)
echo を入れてリダイレクトで結果をファイルに出力とか?
お礼
ご回答、ありがとうございます。 確かにそれを考えたのですが、バッチファイル自体が長く、全てのコマンドの前に気長にechoを打ち込んでいってもよいのですが、結構しんどい作業になってしまいますので、他に方法はないものかと思って質問させて頂きました。 やはり、他に方法がなければそうしようと思います。 ご回答、本当にありがとうございました。
- ok-kaneto
- ベストアンサー率39% (1798/4531)
1行目を echo off であったとしたらそれを削除すれば何を実行しているかを表示するのでそれで良いのでは。
お礼
ご回答、ありがとうございます。 確かに、一行目は「@echo off」にしているのですが、それを削除してもDOS窓の中を流れる処理を目視で追うのは困難ですし、「pause」を使うにしても、DOS窓自体が閉じてしまう様な不正終了の場合は特定が困難です。 今回起きている不正終了は、毎回起きる訳ではなく、ループ処理中に、恐らく扱うデータの内容により、不正終了したり、しなかったりしているのだと思います。 うまくループ処理を通過してくれる場合もあるのですが、稀に不正終了が起きている状態です。 ご回答、本当にありがとうございました。
お礼
ご回答、ありがとうございます。 「/k」オプションで終了しないように出来たのですね。知りませんでした。大変勉強になりました。ありがとうございました。これで全て環境は整いました。 ご回答、本当にありがとうございました。
補足
今作業していますが、後は時間の問題で、どうにか原因を突き止められそうです。ご回答下さった皆さん、本当にありがとうございました。