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
เมื่อรันแล้วจะได้ผลลัพธ์ดังนี้
![](https://iamgolfz.com/wp-content/uploads/Screenshot-2024-12-08-131938-1024x577.png)
ในตัวอย่างนี้ผม monitor แอพที่อยู่ในเครื่องของผมเอง หากต้องการทดสอบบนคอมพิวเตอร์เครื่องอื่น กรุณาแก้ชื่อ app process name และ app path ให้ตรงกับแอพบนคอมพิวเตอร์ที่ต้องการ monitor
สามารถ monitor แอพได้มากกว่านี้ โดยเพิ่มรายการ app, app path และโค้ดในการ check app ครับ
สามารถปรับเวลา Interval ในการตรวจสอบแอพได้ที่บรรทัดนี้
timeout /T 30 /NOBREAK >NUL
ซึ่งในตัวอย่างนี้ผมกำหนดไว้ที่ 30 วินาที