bat批處理指令碼實現windwoss守護程序功能

2021-10-19 14:51:33 字數 1650 閱讀 3345

專案上有幾個程式在掛windwos下面的,近期頻繁出現程序掛掉的狀況,於是寫了乙個守護程序的指令碼。順便記錄一下

@echo off

title sunloginkeeper

cls::設定待執行軟體完整路徑

"c:\imuserver\imuserver.exe"

::設定時間間隔,單位:秒

set _interval=10

::自賦值引數

''set _processname=

''set _processnameext=

''if

==''

(goto end)

for %%a indo(

set _processname=%%~na

set _processnameext=%%~nxa

)::echo %_processname%

::echo %_processnameext%

goto checkstart

:checkstart

::檢查程序是否還在

for /f "tokens=1" %%n in

('tasklist.exe ^| find /i "%_processnameext%" ')do

(if'%%n'

=='%_processnameext%'

(goto checkend))

::重新啟動程序

::此處執行命令

popd

:checkend

::迴圈檢查

choice /t %_interval% /d y /n >nul

goto checkstart

:end

echo end.

效果演示:

其實顯示了重啟時間,你可以當作日誌來看。日誌存放在c:\imuserver\restart_log.txt

@echo off   

set program=

"redis-server.exe"

tasklist -v | findstr %program%

> nul

if errorlevel 1

( echo "程序不存在"

>> d:\server\redis_log\log.txt

echo %date%

+%time%

>> d:\server\redis_log\log.txt

d:cd server\redis

redis-server.exe redis.conf

)else

( echo "程序存在"

)

:loop

ping -n 5

127.0

.0.1

tasklist|find /i 「nginx.exe」

if%errorlevel%==1

(start 「nginx.exe」

)goto

:loop

BAT批處理指令碼

echo off 與 echo on 前者為關閉回顯,後者為開啟回顯 當不想批處理檔案中的命令一行一行在dos中顯示出來時 因為全部顯示出來的話看起來會變得很雜亂 可以使用 echo off,將其放於程式的最上方就行了。先不把回顯關閉,執行乙個小的bat檔案,為 echo off title a c...

Bat批處理指令碼

bat for迴圈 在cmd視窗中 for variable in set do command command parameters 在批處理檔案中 for variable in set do command command parameters 想知道當前目錄下都有哪些檔案嗎?請用下面的 ec...

bat批處理指令碼程式設計

1 宣告變數 注意 前後不要留空格。隨便說一下,在bat中,連續兩個冒號表示注釋 set var1 test 如果要引用這個變數的話,可以這樣寫 var1 2 echo off on echo off 表示關閉echo列印命令 echo on表示開啟echo列印命令 舉例 echo hello wo...