web-dev-qa-db-ja.com

.BATスクリプトをデバッグするにはどうすればよいですか?

.batスクリプトをステップ実行する方法はありますか?事は、私は他の多くのスクリプトを呼び出すビルドスクリプトを持っています、そして私はそれらが呼び出される順序が何であるかを見たいと思います。

90
Vhaerun

とにかく、.batファイルの実行をステップ実行する方法を知りませんが、echoおよびpauseを使用してデバッグを支援できます。

ECHO
バッチファイルにメッセージをエコーし​​ます。 ECHO Hello Worldなどを実行すると、画面にHello Worldが出力されます。ただし、バッチファイルの先頭に@ECHO OFFがないと、「ECHO Hello World」と「Hello World」も取得されます。最後に、空白行を作成するだけの場合は、ECHOと入力します。最後にピリオドを追加すると、空の行が作成されます。

一時停止
続行するには、任意のキーを押すようユーザーに促します。

ソース: バッチファイルヘルプ

@ workmad3:echoコマンドを操作するための回答には、より良いヒントがあります。

別の役立つリソース... DDB:DOS Batch File Tips

67
Eric Schoonover

スクリプトに「エコーオフ」ステートメントがないことを確認し、各スクリプトを呼び出した後に「エコーオン」を呼び出して、見逃したものをリセットします。

理由は、エコーがオンのままの場合、コマンドインタープリターは各コマンドを(パラメーター処理後に)出力してから実行するためです。実稼働環境での使用には非常に悪く見えますが、出力がどこで間違っているかを見ることができるため、デバッグの目的には非常に役立ちます。

また、呼び出されたバッチスクリプトとプログラムによって設定されたErrorLevelsを確認していることを確認してください。このために.batファイルで使用される2つの異なる方法があることに注意してください。プログラムを呼び出した場合、エラーレベルは%ERRORLEVEL%になりますが、バッチファイルからはエラーレベルがErrorLevel変数に返され、その周りに%が必要ありません。

17
workmad3

同様の懸念に直面して、私はささいなGoogle検索で次のツールを見つけました:

JPSoftの「 Take Command 」には、IDE /デバッガーのバッチファイルが含まれています。 短いプレゼンテーションビデオ は、それをうまく示しています。

数時間前から試用版を使用しています。これが私の最初の謙虚な意見です。

  • 一方で、.batおよび.cmdスクリプトのデバッグが実際に可能になり、かなりの場合に役立つと確信しています
  • 一方、それは時々ブロックし、私はそれを殺さなければなりませんでした...特に添え字をデバッグするとき(常に体系的にではありません)..それは「呼び出しスタック」も「ステップアウト」ボタンも表示しません。

試してみてください。

12
Myobis

私が探していたものを正確に実行する「実行ステップ」(win32)ソフトウェアを見つけました: http://www.steppingsoftware.com/

出力および環境変数を見ながら、batファイルをロードし、ブレークポイントを配置したり、ステップ実行を開始したりできます。

評価版では、50行しかステップスルーできません。同様の機能を持つ無料の代替品はありますか?

8
Jokkke99BE

@ECHO OFFを削除し、すべての出力をログファイルにリダイレクトするバッチファイルを呼び出します。

c:> yourbatch.bat(オプションのパラメーター)> yourlogfile.txt2>&1

http://www.robvanderwoude.com/battech_debugging.php にあります

できます!! 2>&1を忘れないでください...

ウィズ

6
WIZ

考えられる唯一の方法は、echosとpausesを使用してコードをスピンすることです。

2
jop

結果をファイルに転送しようとしましたか? whatever.bat> log.txtのように

この場合、呼び出された他のすべてのスクリプトも>> log.txtなどのファイルにログを記録していることを確認する必要があります

また、バッチファイルの最初と最後に日付/ Tと時間/ Tを入力すると、その時点での時間を取得し、スクリプトの実行時間と順序をマッピングできます。

2
Biri

または....メインの.batファイルを別の.batファイルから呼び出し、結果を結果ファイルに出力します。

runner.bat> mainresults.txt

Runner.batがメインの.batファイルを呼び出す場所

これで、メインの.batファイルで実行されたすべてのアクションが表示されます。

1
Mark Thomas