เหตุการณ์ทั่วไปของระบบและ / หรือสิ่งแวดล้อมเช่นการกลับมาจากโหมดสแตนด์บายหรือการสูญเสียการเชื่อมต่อเครือข่ายอาจทำให้เกิดปัญหากับแอปพลิเคชันบางอย่างซึ่งคาดว่าจะเปิดและเชื่อมต่ออยู่ตลอด ดังนั้นหากคุณมีแอปพลิเคชั่นบางตัวที่ขัดข้องหรือเข้าสู่โหมด“ ไม่ตอบสนอง” ค่อนข้างบ่อยและการรีสตาร์ทเป็นการแก้ไขเพียงอย่างเดียวเรามีวิธีแก้ไขง่ายๆสำหรับคุณในรูปแบบของสคริปต์แบตช์ที่ปรับแต่งได้เพื่อฆ่าแอปพลิเคชันและ รีสตาร์ท
นอกเหนือจากสถานการณ์ที่ชัดเจนข้างต้นสคริปต์นี้ยังสามารถใช้สำหรับงานที่มีประโยชน์ต่างๆเช่น:
- รีสตาร์ทแอปพลิเคชันได้อย่างง่ายดายโดยดับเบิลคลิกหรือใช้ปุ่มลัด
- รีสตาร์ทโปรแกรมเฉพาะเมื่อมีการหยุดทำงานหรือไม่ตอบสนอง
- เรียกใช้งานตามกำหนดการเพื่อให้แน่ใจว่าแอปพลิเคชันทำงานอยู่ตลอดเวลา
- ที่อื่นที่คุณต้องการทำให้แอปพลิเคชันเริ่มระบบใหม่โดยอัตโนมัติ
การปรับแต่งสคริปต์ควรเป็นความคิดเห็นที่อธิบายได้ด้วยตนเองดังนั้นเพียงกำหนดค่าสคริปต์ให้เหมาะสมเท่านี้คุณก็พร้อมแล้ว
สคริปต์
@ECHO ปิด
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% ที่มีอยู่ ...
IF {%KillIfRunning%} == {1} CALL: CheckKillStatus "% ExeFile%" "RUNNING"
IF {%KillIfNotResponding%} == {1} CALL: CheckKillStatus "% ExeFile%" "ไม่ตอบสนอง"
IF {%KillIfUnknownStatus%} == {1} CALL: CheckKillStatus "% ExeFile%" "UNKNOWN"
ECHO
ถ้า {%StartOnlyIfKilled%} == {1} (
IF {%Success%} == {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 "โทเค็น = 1, * คั่น =:" %% A IN ("% KillResult%") DO (
ECHO %% A: %% B
IF / I {%%A} == {SUCCESS} SET / A สำเร็จ =% สำเร็จ% + 1
)
: จบ
สรุป
ในขณะที่คุณสามารถค้นหาแอปพลิเคชันที่มีฟังก์ชันเดียวกันโดยทั่วไป แต่การใช้สคริปต์ง่ายๆเช่นนี้จะช่วยหลีกเลี่ยงการมี“ โปรแกรมอื่น” ทำงานอยู่เบื้องหลัง