@echo off
///echo off 關閉其他命令的顯示(但是不包括自身這條命令)
///@echo off 關閉所有命令的顯示(@關閉其後命令的顯示)
set _task=agentmain.exe ///set 設置變量_task
set _svr=C:\gopath\src\main\agentmain.exe
set _des=start2.bat
:checkstart ///批處理中允許以“:XXX”來構建一個標號,然後用GOTO XXX跳轉到標號:XXX處,然後執行標號後的命令。
for /f "tokens=5" %%n in ('qprocess.exe ^| find "%_task%" ') do (
if %%n==%_task% (goto checkag) else goto startsvr
)
:startsvr
echo %time%
echo ********程序開始啓動********
echo 程序重新啓動於 %time% ,請檢查系統日誌 >> restart_service.txt
echo start %_svr% > %_des%
echo exit >> %_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