windows .bat批处理实现进程监控确保程序运行

有没有碰到windows办事器上需要一向运行的某个法式 , 经常主动退出?若是有 , 那快来尝尝这篇经验吧 , 操纵批处置剧本来实实际时检测历程 , 发现历程竣事主动启动!
一、原代码1打开“记事本” , 将以下代码写入 , 然后保留文件为:jk.bat
@echo off 
rem 界说需监控法式的历程名和法式路径 , 可按照需要进行点窜
set AppName=NetbootM.exe
set AppPath=E:\sdyc-v1.3\
【windows .bat批处理实现进程监控确保程序运行】title 历程监控
cls
echo.
echo 历程监控起头……
echo.
rem 界说轮回体
:startjc
   rem 从历程列表中查找指定历程
   rem  下面语句也可写当作 qprocess %AppName% >nul (经验发布后弥补)
   qprocess|findstr /i %AppName% >nul
   rem 变量errorlevel的值等于0暗示查找到历程 , 不然没有查找到历程
   if %errorlevel%==0 (
         echo ^>%date:~0,10% %time:~0,8% 法式正在运行……
    )else (
           echo ^>%date:~0,10% %time:~0,8% 没有发现法式历程
           echo ^>%date:~0,10% %time:~0,8% 正在从头启动法式
           start %AppPath%%AppName% 2>nul && echo ^>%date:~0,10% %time:~0,8% 启动法式当作功
   )
   rem 用ping号令来实现延时运行
   for /l %%i in (1,1,10) do ping -n 1 -w 1000 168.20.0.1>nul
   goto startjc
echo on

windows .bat批处理实现进程监控确保程序运行



2双击jk.bat文件运行剧本 , 运行结果如下:

windows .bat批处理实现进程监控确保程序运行



二、常识点1qprocess|findstr /i %AppName% 即 qprocess|findstr /i NetbootM.exe
起首用qprocess号令显示当前系统所有可历程列表 , 也可用tasklist号令替代 , 再经由过程“|”管道符 , 将成果做为findstr号令的查找源文件 , 即用findstr号令从历程列表中查找 “NetbootM.exe” , 合适前提则输出 , 用/i参数暗示查找不区别大小字 。

windows .bat批处理实现进程监控确保程序运行



windows .bat批处理实现进程监控确保程序运行



2>nul 暗示将号令的尺度输出成果重定标的目的到空设备 , 即不显示在屏幕上 。

windows .bat批处理实现进程监控确保程序运行



3%errorlevel%是系统变量 , 当前一个号令运行当作功 , 它的值为0 , 不然它的值年夜于0 。

windows .bat批处理实现进程监控确保程序运行



4%date:~0,10% %time:~0,8%:变量%date%、%time%别离暗示当前日期和时候;
%var:~0,10%可用于对变量%var%进行字符截取 。 “~”暗示:从左边起头;“0 , 10”暗示:从0位今后 , 截取10个字符 。

猜你喜欢