Batch Script เพื่อรีสตาร์ทแอปพลิเคชันแบบมีเงื่อนไข
ระบบทั่วไปและ / หรือเหตุการณ์ด้านสิ่งแวดล้อมเช่นการกลับมาทำงานต่อจากโหมดสแตนด์บายหรือการสูญเสียการเชื่อมต่อเครือข่ายอาจทำให้เกิดปัญหาสำหรับแอปพลิเคชันบางอย่างที่คาดว่าจะเปิดใช้งานและเชื่อมต่ออยู่เสมอ ดังนั้นหากคุณมีแอปพลิเคชั่นบางตัวที่เกิดปัญหาหรือเข้าสู่โหมด“ ไม่ตอบสนอง” ค่อนข้างบ่อยและการรีสตาร์ทเป็นเพียงการแก้ไขเพียงอย่างเดียวเรามีการแก้ไขที่ง่ายสำหรับคุณในรูปแบบของสคริปต์แบทช์ที่ปรับแต่งได้ รีสตาร์ทมัน.
นอกเหนือจากสถานการณ์ที่ชัดเจนข้างต้นสคริปต์นี้สามารถใช้สำหรับงานที่มีประโยชน์มากมายเช่น:
- รีสตาร์ทแอปพลิเคชั่นได้อย่างง่ายดายโดยดับเบิลคลิกหรือใช้ฮอตคีย์.
- รีสตาร์ทโปรแกรมเมื่อหยุดทำงานหรือไม่ตอบสนอง.
- เรียกใช้เป็นภารกิจที่กำหนดเวลาไว้เพื่อให้แน่ใจว่าแอปพลิเคชันทำงานอยู่เสมอ.
- ที่ใดก็ตามที่คุณต้องการเริ่มต้นแอปพลิเคชันใหม่แบบมีเงื่อนไขโดยอัตโนมัติ.
การปรับแต่งสคริปต์ควรอธิบายด้วยตนเองโดยความคิดเห็นดังนั้นเพียงกำหนดค่าสคริปต์อย่างเหมาะสมและคุณพร้อมแล้ว.
สคริปต์
@ECHO OFF ECHO รีสตาร์ทแอปพลิเคชัน ECHO เขียนโดย: Jason Faulkner ECHO SysadminGeek.com ECHO ECHO SETLOCAL EnableExtensions REM ป้อนข้อมูลแอปพลิเคชัน SET AppName = ชื่อแอปพลิเคชัน SET ExeFile = FileToLaunch.exe SET ExePath = C: PathToApplication REM เลือกเงื่อนไขเพื่อฆ่าแอปพลิเคชัน REM ค่า 1 = ใช่, 0 = ไม่ใช่ SET KillIfRunning = 1 SET KillIfNotResponding = 1 SET KillIfUnknownStatus = 1 REM ระบุว่าเมื่อใดที่จะเริ่มต้นแอปพลิเคชัน: REM 1 = เริ่มเฉพาะเมื่อกระบวนการก่อนหน้านี้ถูกฆ่า REM 0 = เริ่มแอปพลิเคชันโดยไม่คำนึงถึง SET StartOnlyIfKilled = 1 SET KillStatus = "% TEMP% KillStatus.tmp.txt" SET Success = 0 ECHO ฆ่าอินสแตนซ์% AppName%%% ที่มีอยู่…ถ้า % KillIfRunning% == 1 เรียก: CheckKillStatus "% ExeFile%" "RUNNING "IF % KillIfNotResponding% == 1 CALL: CheckKillStatus"% ExeFile% "" ไม่ตอบสนอง "IF % KillIfNknownStatus% == 1 CALL: CheckKillStatus"% exeFile% "" UNKNOWN " หาก % StartOnlyIfKilled% == 1 (IF % สำเร็จ% == 0 จบ GOTO) ECHO กำลังเริ่มต้นใหม่% AppName% …เริ่ม "% ExeFile%" "% ExePath %% ExeFile%" ECHO หากมีอยู่% KillStatus% DEL / F / Q% KillStatus% ENDLOCAL: CheckKillStatus ECHO ฆ่าด้วยสถานะ:% ~ 2 TASKKILL / FI "สถานะ eq% ~ 2" / IM "% ~ 1" / F>% KillStatus% SET / P KillResult = < %KillStatus% FOR /F "tokens=1,* delims=:" %%A IN ("%KillResult%") DO ( ECHO %%A:%%B IF /I %%A==SUCCESS SET /A Success=%Success%+1 ) :End
ข้อสรุป
ในขณะที่คุณสามารถหาแอปพลิเคชั่นที่ทำหน้าที่ฟังก์ชั่นเดียวกันได้โดยใช้สคริปต์ง่ายๆเช่นนี้เพื่อหลีกเลี่ยงการทำงานเป็น "โปรแกรมอื่น" ในพื้นหลัง.