通过定时检测系统进程列表,判断目标程序是否正在运行,没运行则开启该软件,已经运行判断该程序是否异常,异常则杀死该进程,下次检测时会重新开启该进程
直接上脚本
- @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”,即可解决乱码问题