Sistemul obișnuit și / sau evenimentele de mediu, cum ar fi reluarea din regimul de așteptare sau pierderea conexiunii la rețea pot cauza probleme anumitor aplicații care se așteaptă să fie mereu pornite și conectate. Deci, dacă aveți o anumită aplicație care se blochează sau intră în modul „nu răspunde” oarecum frecvent și o repornire este singura soluție pentru aceasta, avem o soluție simplă pentru dvs. sub forma unui script de lot personalizabil pentru a ucide pur și simplu aplicația și reporniți-l.
În plus față de situația evidentă de mai sus, acest script poate fi utilizat pentru o varietate de sarcini utile, cum ar fi:
- Reporniți cu ușurință o aplicație făcând dublu clic sau utilizând o tastă rapidă.
- Reporniți un program numai atunci când acesta este suspendat sau nu răspunde.
- Rulați ca o sarcină programată pentru a vă asigura că o aplicație rulează întotdeauna.
- Oriunde altundeva doriți să automatizați repornirea condiționată a unei aplicații.
Personalizarea scriptului ar trebui să fie destul de explicabilă prin comentarii, deci configurați scriptul în mod corespunzător și sunteți gata.
Scriptul
@ECHO OFF
Aplicația ECHO Restart
ECHO Scris de: Jason Faulkner
ECHO SysadminGeek.com
ECOU.
ECOU.
SETLOCAL EnableExtensions
REM Introduceți informațiile despre aplicație.
SET AppName = Nume aplicație
SET ExeFile = FileToLaunch.exe
SET ExePath = C: PathToApplication
REM Selectați condițiile pentru a elimina aplicația.
REM O valoare 1 = Da, 0 = Nu
SET KillIfRunning = 1
SET KillIfNotResponding = 1
SET KillIfUnknownStatus = 1
REM Specificați când să porniți aplicația:
REM 1 = Începeți doar dacă procesul a fost anterior eliminat.
REM 0 = Porniți aplicația indiferent.
SET StartOnlyIfKilled = 1
SET KillStatus = "% TEMP% KillStatus.tmp.txt"
SET Succes = 0
ECHO Eliminarea instanței% AppName% existente ...
IF {%KillIfRunning%} == {1} APEL: CheckKillStatus "% ExeFile%" "RUNNING"
IF {%KillIfNotResponding%} == {1} APEL: CheckKillStatus "% ExeFile%" "FĂRĂ RĂSPUNS"
IF {%KillIfUnknownStatus%} == {1} APEL: CheckKillStatus "% ExeFile%" "NECUNOSCUT"
ECOU.
IF {%StartOnlyIfKilled%} == {1} (
IF {%Success%} == {0} Sfârșitul GOTO
)
ECHO Repornirea% AppName% ...
Porniți „% ExeFile%” „% ExePath %% ExeFile%”
ECOU.
DACĂ EXISTĂ% KillStatus% DEL / F / Q% KillStatus%
ENDLOCAL
: CheckKillStatus
ECHO Killing cu status:% ~ 2
TASKKILL / FI "STATUS eq% ~ 2" / IM "% ~ 1" / F>% KillStatus%
SET / P KillResult = <% KillStatus%
FOR / F "token = 1, * delims =:" %% A IN ("% KillResult%") DO (
ECHO %% A: %% B
IF / I {%%A} == {SUCCESS} SET / A Succes =% Succes% + 1
)
:Sfârșit
Concluzie
În timp ce puteți găsi aplicații care îndeplinesc practic aceeași funcție, folosind un script simplu, astfel încât acesta să evite să ruleze „încă un program” în fundal.