Categories
utility

monitor และ re-run แอพบน windows ด้วย batch script

Batch script นี้ จะ monitor แอพที่เราสนใจและหากแอพในรายการที่กำลัง monitor อยู่ปิดตัวลง สคริปต์นี้จะ re-run แอพนั้นให้โดยอัตโนมัติ

ตัวอย่างนี้ผมทดสอบโดย monitor แอพ 2 ตัวคือ Postman และ Git Bash สามารถทดสอบโดยนำสคริปต์นี้ไปสร้างไฟล์ batch เช่น CheckAppAndRerun.bat แล้วคลิกไฟล์ที่สร้างขึ้นเพื่อรันสคริปต์ได้เลย

@echo off
:loop
rem Application names and paths
set app1=Postman.exe
set app2=git-bash.exe

set app1path=C:\Users\surat\AppData\Local\Postman\Postman.exe
set app2path=C:\Program Files\Git\git-bash.exe

rem Check App1
tasklist /FI "IMAGENAME eq %app1%" 2>NUL | find /I "%app1%" >NUL
if %ERRORLEVEL% NEQ 0 (
    echo [%date% %time%] %app1% is not running. Starting it now...
    start "" "%app1path%"
) else (
    echo [%date% %time%] %app1% is running.
)

rem Check App2
tasklist /FI "IMAGENAME eq %app2%" 2>NUL | find /I "%app2%" >NUL
if %ERRORLEVEL% NEQ 0 (
    echo [%date% %time%] %app2% is not running. Starting it now...
    start "" "%app2path%"
) else (
    echo [%date% %time%] %app2% is running.
)

rem Wait for 30 seconds before checking again
timeout /T 30 /NOBREAK >NUL
goto loop

เมื่อรันแล้วจะได้ผลลัพธ์ดังนี้

ในตัวอย่างนี้ผม monitor แอพที่อยู่ในเครื่องของผมเอง หากต้องการทดสอบบนคอมพิวเตอร์เครื่องอื่น กรุณาแก้ชื่อ app process name และ app path ให้ตรงกับแอพบนคอมพิวเตอร์ที่ต้องการ monitor

สามารถ monitor แอพได้มากกว่านี้ โดยเพิ่มรายการ app, app path และโค้ดในการ check app ครับ

สามารถปรับเวลา Interval ในการตรวจสอบแอพได้ที่บรรทัดนี้

timeout /T 30 /NOBREAK >NUL

ซึ่งในตัวอย่างนี้ผมกำหนดไว้ที่ 30 วินาที