通过定时检测系统进程列表,判断目标程序是否正在运行,没运行则开启该软件,已经运行判断该程序是否异常,异常则杀死该进程,下次检测时会重新开启该进程
直接上脚本
@echo off
:run
tasklist /FI "IMAGENAME eq CRCCheck.exe" 2>NUL | find /I /N "CRCCheck.exe">NUL
if "%ERRORLEVEL%"=="0" (
echo Program is running
for /f "skip=3 tokens=2 " %%i in ('TASKLIST /FI "IMAGENAME eq CRCCheck.exe" /FI "STATUS eq NOT RESPONDING"') do (
echo %Date% %time% %%i
taskkill /F /PID %%i /T 进入这里就是无响应 自己 kill 掉
)
) else (
echo Program is NONONO running
start D:\CRCCheck.exe
)
choice /t 10 /d y /n > null
goto run
若控制台,输出中文乱码,因为大部分文本编辑器会默认将文件保存为UTF-8编码,保存文件时,选择另存为,格式选“ANSI”,即可解决乱码问题