有沒有碰到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 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!