下面是一個簡單的循環應該這樣做:
: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
正在運行,並結束批處理文件。
'/ wait'本身不是一個命令。這是「START」命令的一個選項。 – Squashman
'睡眠'也不是一個標準命令,建議您在**命令提示符**窗口中輸入以下內容以瞭解更多信息。 'Start /?','Timeout /?','TaskKill /?'。一旦您瞭解了這些命令的工作方式,請更新上面的腳本,根據需要編輯該帖子。 – Compo
謝謝!我想我現在有點了解我不能使用啓動命令,對吧?然後如何讓腳本等待exe(不是由批處理啓動)? – araraf