@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 "HKLMSoftwareMicrosoftWindowsCurrentVersionRun" /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
注:把路径设置成当前批处理文件所在的路径。