13

Windowsでバッチファイルを順番に実行する方法を皆さんにお聞きしたいと思います。私が試してみました :

start /w batchfile_1.bat 
start /w batchfile_2.bat
..
start /w batchfile_n.bat

しかし、次のプロセスに進む前に、前の .bat ファイル プロセスを手動で (たとえば、クリックして) 閉じる必要があります。以前の.batプログラムを毎回手動で閉じることなく、これを自動的に行う解決策はありますか?

どうもありがとう。

4

3 に答える 3

20

この質問の解決策を確認します:複数のバッチファイルを実行する

  • リンクの答えから取られました。

呼び出しを使用する:

call bat1.cmd
call bat2.cmd

デフォルトでは、別の1つのコントロールからバッチファイルを実行するだけでは、呼び出し元のコントロールに戻されません。そのため、callを使用する必要があります。

基本的に、次のようなバッチがある場合:

@echo off
echo Foo
batch2.cmd
echo Bar

その後、それは出力するだけです

Foo

あなたがそれを次のように書くなら

@echo off
echo Foo
call batch2.cmd
echo Bar

ただし、出力されます

Foo
Bar

batch2が終了すると、プログラム制御が元のバッチファイルに戻されるためです。

于 2012-08-29T23:37:59.160 に答える
3

の使用が好きな場合はSTART、バッチ ファイルをEXITコマンドで終了させることができます。これにより、コマンドによって作成されたウィンドウが閉じますstart

@echo off
 .
 .
:: Inspired coding
 .
 .
exit
于 2012-08-30T01:50:11.353 に答える
0

よくわかりませんが、コメントに基づいて、その一連のSTARTコマンドを実行すると、次のことが起こっているようです。

  1. START /Wコマンドが呼び出され、バッチ ファイルが開始されます。

  2. バッチ ファイルが実行を開始し、プログラムを実行します。

  3. バッチ ファイルは終了し、コンソール ウィンドウは開いたままになりますが、プログラムは引き続き実行されます。

  4. START /Wコンソール ウィンドウが開いたままなので、バッチ ファイルの実行に使用されたコマンドはまだ実行中です。

  5. プログラムが終了するまで待ってから、コンソール ウィンドウを閉じると、次のSTART /Wコマンドが呼び出され、すべてが繰り返されます。

ここで、EXIT順番に実行するすべてのバッチ ファイルの最後に配置すると、バッチ スクリプトの完了後にコンソール ウィンドウが閉じられ、対応するSTART /Wコマンドが終了して別のコマンドが実行されるため、状況が悪化します。 、バッチ スクリプトによって呼び出されたプログラムがまだ実行されている場合でも。その結果、バッチ スクリプト (または、バッチ スクリプトによって実行されるプログラム) が順次ではなく同時に実行されます。

これがまったく解決できる場合は、START /Wコマンドを移動して、そのバッチファイルが実行され、終了を待たない(すべての)コマンドの前にあるすべてのバッチファイルに配置する必要があると思います。つまり、 をbatchfile_1.bat実行する場合はprogram.exe、コマンド ラインを に変更しSTART /W program.exeます。他のバッチ ファイルの他の関連コマンドについても同様です。

于 2012-08-31T13:51:26.420 に答える