手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

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

时间:2024-10-12 19:06:08

有没有遇到windows服务器上需要一直运行的某个程序,常常自动退出?如果有,那快来试试这篇经验吧,利用批处理脚本来实现实时检测进程,发现进程结束自动启动!

一、原代码

1、打开“记事本”,将以下代码写入,然后保存文件为:jk.bat@echo offrem 定义需监控程序的进程名和程序路径,可根据需要进行修改set AppName=NetbootM.exeset AppPath=E:\sdyc-v1.3\title 进程监控clsecho.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 startjcecho on

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

2、双击jk.bat文件运行脚本,运行效果如下:

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

二、知识点

1、qprocess|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个字符。

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

5、start notepad 2>nul && echo 启动程序成功start命令用于启动程序,后面跟需运行的程序,如程序可执行文件在系统变量%path%所含目录中或跟脚本在同一目录可不跟文件路径,否则需输入完整路径。2>nul 表示将标准错误输出重定向到空设备,即标准错误输出不显示出来。逻辑运算符“&&”表示只有在符号 && 前面的命令成功时,才用于运行该符号后面的命令。

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

6、for /l 婊剧琏兄%%i in (1,1,10) do ping -n 1 -w 1000 168.20.0.1for /l %i in (1,1,10) do 表示变量%i的蔌阪栉酽初始值为1,当%i小于等于10时,运行do后面的命令语句,同时%i自增1,直到%i大于10结束循环。其中%i在脚本要写成%%i。ping 命令 -n参数表示发送1个icmp包,-w 1000 表示等待回复的超时时间为1秒,后面跟一个不可能ping通的IP,来实现延时1秒的功能,但这个延时不够精确,且跟运行的电脑有关。

windows .bat批处理实现进程监控确保程序运行
windows .bat批处理实现进程监控确保程序运行
windows .bat批处理实现进程监控确保程序运行
© 手抄报圈