@echo off rem 定义循环间隔时间和监测的服务 set secs=60 set srvname="Apache2.2" echo. echo ======================================== echo == 查询计算机服务的状态 == echo == 每间隔%secs%秒种进行一次查询 == echo == 如发现其停止 则立即启动 == echo ======================================== echo. if %srvname%. == . goto end :chkit echo. echo %date:~0,10% %time:~0,8% set svrst=0 for /F "tokens=1* delims= " %%a in ('net start') do ( if /I "%%a" == %srvname% set svrst=1 ) if %svrst% == 0 ( echo 服务已宕机,正在为您重新启动服务【%srvname%】 net start %srvname% timeout /t %secs% timeout /t %secs% timeout /t %secs% timeout /t %secs% timeout /t %secs% timeout /t %secs% timeout /t %secs% timeout /t %secs% timeout /t %secs% timeout /t %secs% ) else ( echo 服务运行正常【%srvname%】 ) rem 下面的命令用于延时,否则可能会导致cpu单个核心满载。 timeout /t %secs% goto chkit :end