3

一連のコマンドを実行する MS DOS バッチ ファイルを作成しました。

各コマンドは、いくつかの特定のパラメーターを使用してプログラムを呼び出します。これを自動化するために、すべてのコマンドを組み合わせました。

バッチファイルの構造は次のとおりです。

@echo off
if %1 == "b1" (
command 1
command 2
command 3
....
) else (
command a
command b
command c
)

以下に示すように呼び出します。

test.bat b1

b1 を引数としてバッチ ファイルに渡すと、コマンド 1、コマンド 2、コマンド 3 という一連のコマンドが処理されます。

同様に、else セクションで説明した一連のコマンドを実行する場合は、別の引数を渡します。

test.bat abc

バッチ ファイルに渡された引数が b1 と等しくないため、バッチ ファイルの else セクションの実行が開始されます。ここで渡す引数 (この場合は abc) は、コマンド a、コマンド b、コマンド c などでパラメーターとして必要です。

これはすべてかなりうまく機能します。

ただし、私が直面している問題は、(Ctrl + C を押して) バッチ ファイルを途中で終了したい場合、次のオプションが表示されないことです: Do you want to Terminate the Batch operation? はい/いいえ

たとえば、バッチ ファイルが else セクションで一連のコマンドを処理しているとします。現在、コマンド a を実行しているとします。Ctrl + C を押すと、操作をキャンセルするプロンプトが表示される代わりに、コマンド a の実行がキャンセルされ、コマンド b が自動的に続行されます。もう一度 Ctrl + C を押すと、コマンド b がキャンセルされ、コマンド c に進みます。

一方、バッチファイルを次のように記述すると、次のようになります。

@echo off
command a
command b
command c

コマンドラインから次のように呼び出します。

test.bat abc

これで、バッチ ファイルの実行中に Ctrl + C を押すと、期待どおりにバッチ操作をキャンセルするように求められます。

バッチ ファイルに条件ステートメントを追加すると、Ctrl + C の機能が何らかの形で変更されたようです。

この問題を解決するにはどうすればよいですか?

ありがとう。

4

1 に答える 1