1
我當前的程序運行其任務,然後關閉自己,批處理文件然後在60秒後重新啓動它。問題在於有時程序無法自行關閉,一切都停滯不前。批量自動重啓程序
我需要修改腳本,所以如果程序沒有關閉它,它會在5分鐘後自動重新啓動。
:launch
START /wait program.exe
rem delay 60 seconds
ping 127.0.0.1 -n 60 > nul
GOTO :launch
我當前的程序運行其任務,然後關閉自己,批處理文件然後在60秒後重新啓動它。問題在於有時程序無法自行關閉,一切都停滯不前。批量自動重啓程序
我需要修改腳本,所以如果程序沒有關閉它,它會在5分鐘後自動重新啓動。
:launch
START /wait program.exe
rem delay 60 seconds
ping 127.0.0.1 -n 60 > nul
GOTO :launch
你可以做這樣的事情:
例如您檢查每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
所以你正在尋找'taskkill'命令? – aschipfl
如果程序本身沒有關閉,我將如何將它集成到當前批處理腳本中,以在5分鐘後執行任務? – Kevin
首先,從'start'命令中移除'/ WAIT'開關;延遲後('ping'),狀態'taskkill/FI「IMAGENAME eq program.exe」',假設只有一個'program.exe'實例正在運行;還可以在命令提示符窗口中輸入'taskkill /?'作爲使用信息; 'tasklist'命令支持相同的過濾器('/ FI'開關),所以你可以使用這個命令進行無害測試... – aschipfl