有没有碰到windows办事器上需要一向运行的某个法式,经常主动退出?若是有,那快来尝尝这篇经验吧,操纵批处置剧本来实实际时检测历程,发现历程竣事主动启动!
打开“记事本”,将以下代码写入,然后保留文件为:jk.bat
@echo off
rem 界说需监控法式的历程名和法式路径,可按照需要进行点窜
set AppName=NetbootM.exe
set AppPath=E:\sdyc-v1.3\
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
双击jk.bat文件运行剧本,运行结果如下:
qprocess|findstr /i %AppName% 即 qprocess|findstr /i NetbootM.exe
起首用qprocess号令显示当前系统所有可历程列表,也可用tasklist号令替代,再经由过程“|”管道符,将成果做为findstr号令的查找源文件,即用findstr号令从历程列表中查找 “NetbootM.exe”,合适前提则输出,用/i参数暗示查找不区别巨细字。
>nul 暗示将号令的尺度输出成果重定标的目的到空设备,即不显示在屏幕上。
%errorlevel%是系统变量,当前一个号令运行当作功,它的值为0,不然它的值年夜于0。
%date:~0,10% %time:~0,8%:变量%date%、%time%别离暗示当前日期和时候;
%var:~0,10%可用于对变量%var%进行字符截取。“~”暗示:从左边起头;“0,10”暗示:从0位今后,截取10个字符。
start notepad 2>nul && echo 启动法式当作功
start号令用于启动法式,后面跟需运行的法式,如法式可执行文件在系统变量%path%所含目次中或跟剧本在统一目次可不跟文件路径,不然需输入完整路径。
2>nul 暗示将尺度错误输出重定标的目的到空设备,即尺度错误输出不显示出来。
逻辑运算符“&&”暗示只有在符号 && 前面的号令当作功时,才用于运行该符号后面的号令。
for /l %%i in (1,1,10) do ping -n 1 -w 1000 168.20.0.1
for /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秒的功能,但这个延时不敷切确,且跟运行的电脑有关。
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!