@echo off ::檢測時間間隔,單位:秒 set _interval=5 ::需要守護的進程名稱 set _processName=QtMyDaemon ::需要守護的進程啟動命令 set _processCmd=QtMyDaemon.exe ::set _processCmd=socket服務端.exe ::需要守護的進程預估啟動完畢所需時間,單位:秒 set _processTimeout=1 ::進程用戶名,一般是Administrator set _username=adminstrator :LOOP set /a isAlive=false ::tasklist /FI "username eq %_username%" | find /C "%_processName%" > temp.txt tasklist | find /C "%_processName%" > temp.txt set /p num= < temp.txt del /F temp.txt if "%num%" == "0" ( start %_processCmd% | echo start %_processName% at %time% choice /D y /t %_processTimeout% > nul ) if "%num%" NEQ "0" echo %_processName% is running choice /D y /t %_interval% >nul goto LOOP
注:保證某一進程一直啟動掉線則重啟,類似看門狗軟件功能
@echo off start %cd%\QtMyDaemon.exe %啟動程序% setlocal EnableDelayedExpansion reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Run" /v "QtMyDaemon" /t REG_SZ /d "%cd%\QtMyDaemon.exe" /f %將程序寫進注冊表,開機自啟動% echo Register successfully. pause>nul %>nul的作用是不顯示請按任意鍵繼續%
注:啟動QtMyDaemon.exe程序,並將其寫入注冊表,開機會自動啟動。
%若matlab進程存在則重啟%
@echo off tasklist | findstr /i "MATLAB.exe" >nul 2>nul && ( taskkill /f /im MATLAB.exe ) pause start MATLAB.exe echo Execution completion pause
注:從后台進程中關掉MATLAB.exe程序並重啟。
@echo off set path=%CD% echo %path% echo %path% echo %path% echo %path% echo %path% pause>nul
注:把路徑設置成當前批處理文件所在的路徑。