2017-02-22 26 views
-1

。そのバッチは.exe AとBを起動します.Aは(ゲーム)ランチャーで、ファイルCを閉じて起動します。ゲームを終了した後(C)、Bファイルも閉じますか?またバッチ - C終了Bを終了した後の.exe AとBの開始

私は一緒にこのような何かを取得しようとした - 私は貧しい用語やタイプミスとすべてのために動作しません

@echo off 
start A.exe 
start B.exe 
:CheckAgain 
tasklist | findstr "TheCProgram.exe" 
if errorlevel 1 (timeout /T 2 & goto :CheckAgain) 
taskkill B.exe 
exit 

が...

(申し訳ありませんが、このようなnoobのそれは...これらの事になると私はそうTTを失っています)

+0

'/ wait'は単独ではコマンドではありません。これは 'START'コマンドのオプションです。 – Squashman

+0

'Sleep'も標準的なコマンドではありません。**コマンドプロンプト**ウィンドウに以下を入力して詳細を調べることをお勧めします。 「開始/?」、「タイムアウト/?」、「タスクキル/?」これらのコマンドの仕組みを理解したら、上記のスクリプトを更新し、必要に応じて投稿を編集します。 – Compo

+0

ありがとう!私はスタートコマンドを使用できないようになった今、ちょっと分かりましたね。私はどのようにして、スクリプトは、(バッチによって開始されていない)exeを待つようにしますか? – araraf

答えて

1

ここではそれを行う必要があり、単純なループです:

:CheckAgain 
tasklist | findstr "TheCProgram.exe" 
if errorlevel 1 (timeout /T 2 & goto :CheckAgain) 
01これはチェックここ

:CheckAgain    :: A label for the start of the loop 
tasklist     :: Get list of running programs 
findstr "TheCProgram.exe" :: Search to see if the program C is running? 
if errorlevel 1   :: If there was an error, then the program is not yet running. 
timeout /T 2    :: Wait 2 seconds 
& goto :CheckAgain   :: Go start the loop again to look for the program. 

(軽く試験し、堅固でなくてもよい)


私は使用したサンプルスクリプトで、

@echo off 

:CheckAgain 
tasklist | findstr "calc.exe" 
if errorlevel 1 (timeout /T 2 & goto :CheckAgain) 

echo The Calculator Program is now running. 

を:ダウンブロークン

標準ウィンドウの計算機calc.exeは、簡単に開始できます。私はcmdでバッチファイルを開始し、2〜3回タイムアウトした後、計算機を起動します。バッチファイルは、calcが実行されていることを正しく検出し、バッチファイルを終了します。

+0

*編集*私は数回試してみましたが、 "TheCProgram.exe"が実行中であっても、 – araraf

関連する問題