同时守护多条进程
@echo off
set task_one = task_one .exe
set task_two = task_two.exe
set svr_one = 绝对路径\task_one .exe
set svr_two = 绝对路径\task_two.exe
set des=start.bat
:checkstart
set status=1
echo ********条件判断********
(TASKLIST|FIND /I "%task_one %"||SET status=2) 3>nul 2>nul
(TASKLIST|FIND /I "%task_two %"||SET status=3) 3>nul 2>nul
echo %status%
IF %status% EQU 1 (goto checkag ) ELSE (goto startsvr)
:startsvr
echo %time%
echo ********开始杀进程********
taskkill /F /IM task_one .exe
taskkill /F /IM task_two.exe
......
echo ********程序开始启动********
echo 程序重新启动于 %time% ,请检查系统日志 >> restart_service.txt
echo start %svr_one % > %_des%
echo start %svr_two% >> %_des%
......
start %_des%
set/p=.<nul
for /L %%i in (1 1 10) do set /p a=.<nul&ping.exe /n 2 127.0.0.1>nul
echo .
echo Wscript.Sleep WScript.Arguments(0) >%tmp%\delay.vbs
cscript //b //nologo %tmp%\delay.vbs 10000
del %_des% /Q
echo ********程序启动完成********
goto checkstart
:checkag
echo %time% 程序运行正常,10秒后继续检查..
echo Wscript.Sleep WScript.Arguments(0) >%tmp%\delay.vbs
cscript //b //nologo %tmp%\delay.vbs 10000
goto checkstart