2017-02-22 24 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 

不工作...

(對不起,我可憐的術語和錯別字,一切我是這樣的小白,當談到這些事情......而我這樣就失去了TT)

+0

'/ wait'本身不是一個命令。這是「START」命令的一個選項。 – Squashman

+0

'睡眠'也不是一個標準命令,建議您在**命令提示符**窗口中輸入以下內容以瞭解更多信息。 'Start /?','Timeout /?','TaskKill /?'。一旦您瞭解了這些命令的工作方式,請更新上面的腳本,根據需要編輯該帖子。 – Compo

+0

謝謝!我想我現在有點了解我不能使用啓動命令,對吧?然後如何讓腳本等待exe(不是由批處理啓動)? – araraf

回答

1

下面是一個簡單的循環應該這樣做:

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

分拆下來:

: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. 

它檢查對於易於啓動的標準Windows計算器calc.exe。我在cmd開始批處理文件,然後在超過2或3次後啓動計算器。批處理文件正確檢測到calc正在運行,並結束批處理文件。

+0

*編輯*所以我試了幾次,它不斷循環,無論是「TheCProgram.exe」正在運行還是關閉 – araraf

相關問題