105

.batスクリプトをステップ実行する方法はありますか?重要なのは、他の多くのスクリプトを呼び出すビルドスクリプトがあり、それらが呼び出される順序を確認して、どこに行かなければならないかを正確に把握し、変更を追加できるようにすることです。 。

4

11 に答える 11

75

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

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

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

出典:バッチファイルヘルプ

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

もう1つの役立つリソース... DDB:DOSバッチファイルのヒント

于 2008-10-03T06:50:13.680 に答える
19

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

その理由は、echoをオンのままにすると、コマンドインタープリターが(パラメーター処理後に)各コマンドを実行する前に出力するためです。本番環境での使用には非常に見栄えが悪くなりますが、出力がどこで間違っているかを確認できるため、デバッグ目的には非常に役立ちます。

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

于 2008-10-03T06:52:03.910 に答える
14

同様の懸念に直面して、簡単な Google 検索で次のツールを見つけました。

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

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

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

試してみます。

于 2013-11-20T12:01:37.787 に答える
9

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

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

評価版では 50 行しかステップ実行できません... 同様の機能を備えた無料の代替手段はありますか?

于 2010-08-18T12:11:32.513 に答える
7

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

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

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

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

ウィズ

于 2009-08-22T16:01:53.093 に答える
2

私が考えることができる唯一の方法は、echosとpausesでコードをスピンクルすることです。

于 2008-10-03T06:49:13.697 に答える
2

結果をファイルに再ルーティングしようとしましたか?のようにwhatever.bat>log.txt

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

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

于 2008-10-03T06:50:52.400 に答える
2

cmd \kスクリプトの最後で使用して、エラーを確認できます。実行が完了した後、コマンドプロンプトを閉じません

于 2020-08-11T17:47:52.303 に答える
1

非常によくある問題は、アイコンをダブルクリックしてバッチ スクリプトを実行することです。ホストしているコマンド プロンプト ( cmd.exe) インスタンスもバッチ スクリプトが終了するとすぐに終了するため、潜在的な出力やエラー メッセージを読み取ることができません。

このようなメッセージを読むには、明示的にコマンド プロンプト ウィンドウを開き、適切な作業ディレクトリに移動し、パス/名前を入力してバッチ スクリプトを実行することが非常に重要です。

于 2020-06-09T12:59:51.057 に答える
1

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

runner.bat > mainresults.txt

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

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

于 2008-11-27T16:29:29.383 に答える
-2

または、コマンド ウィンドウを開き、そこからバッチを呼び出すと、出力が画面に表示されます。

于 2010-05-29T15:51:25.270 に答える