讓bat批處理后台運行,不顯示cmd窗口(完全靜化)


 

背景:由於我有某雲的服務器(win server), 上面掛有好幾個程序, 為了更好的監控他們, 我使用了一個最笨的方法, 就是下面的方法。

實現:我要監控的程序有三個, 成為ABC吧, 下面先把三個程序的監控寫好, 我使用的是python郵件告警和bat的進程監控

main.vbs

1
2
3
4
Set  ws = CreateObject( "Wscript.Shell" )
ws.run  "cmd /c A.bat" ,0
ws.run  "cmd /c B.bat" ,0
ws.run  "cmd /c C.bat" ,0

這是vbs, 作用就是在這里調用運行bat時,是進入后台運行(就是完全不在前台顯示這幾個bat的cmd的界面)

main.bat

1
2
3
4
5
6
@ echo  off<nul 3>nul
:one
echo  % date :~0,10% % time :~0,-3% cheng守護進程正在監控系統...
start main.vbs
ping  127.0.0.1 -n 10>nul
goto one

留意一下就會發現, 這是一個死循環, 是的。因為我並沒有打算把vbs扔進計划任務跑, 我是使用一個bat,每隔10秒 執行一下main.vsb文件, 而vbs則會去跑那三個監控告警批處理。

第3行:顯示當前系統時間與提示信息。

第4行:運行vbs腳本。

第5行:sleep 10秒,這是有點奇怪的寫法,使用了ping中的功能。

運行

1
跑main.bat

按照之前,不使用vbs調 直接運行那幾個監控bat的時候會連續閃彈cmd窗口,現在只會看到一個cmd在運行, 后台運行的是那三個bat。

每當檢測到有進程掛的時候會第一時間發送郵件提醒。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM