2016-04-11 74 views
1

我當前的程序運行其任務,然後關閉自己,批處理文件然後在60秒後重新啓動它。問題在於有時程序無法自行關閉,一切都停滯不前。批量自動重啓程序

我需要修改腳本,所以如果程序沒有關閉它,它會在5分鐘後自動重新啓動。

:launch 

START /wait program.exe 

rem delay 60 seconds 
ping 127.0.0.1 -n 60 > nul 

GOTO :launch 
+0

所以你正在尋找'taskkill'命令? – aschipfl

+0

如果程序本身沒有關閉,我將如何將它集成到當前批處理腳本中,以在5分鐘後執行任務? – Kevin

+0

首先,從'start'命令中移除'/ WAIT'開關;延遲後('ping'),狀態'taskkill/FI「IMAGENAME eq program.exe」',假設只有一個'program.exe'實例正在運行;還可以在命令提示符窗口中輸入'taskkill /?'作爲使用信息; 'tasklist'命令支持相同的過濾器('/ FI'開關),所以你可以使用這個命令進行無害測試... – aschipfl

回答

1

你可以做這樣的事情:

例如您檢查每5分鐘,如果calc.exe進程正在運行或不。

@echo off 
Mode con cols=55 lines=3 
:CheckRunningProcess 
Cls 
echo(
Set "MyProcess=calc.exe" 
Title Check for Running Process "%MyProcess%" 
tasklist /NH /FI "imagename eq %MyProcess%" 2>nul |find /i "%MyProcess%" >nul 
If not errorlevel 1 (Color 0A & Echo     "%MyProcess%" is running 
) else (Color 0C & echo "%MyProcess%" is not running, so we start it right now & start "" "%MyProcess%") 
TimeOut /T 300 /NoBreak >nul 
Goto :CheckRunningProcess