Pagina principala » HOWTO » Batch Script pentru a reporni condiționat o aplicație

    Batch Script pentru a reporni condiționat o aplicație

    Evenimentele obișnuite de sistem și / sau de mediu, cum ar fi reluarea din regimul de așteptare sau pierderea conexiunii la rețea, pot cauza probleme pentru anumite aplicații care se așteaptă să fie mereu conectate și conectate. Deci, dacă aveți o anumită aplicație care se blochează sau merge în modul "nu răspunde" oarecum frecvent și o repornire este singura remediere pentru aceasta, avem o soluție simplă pentru tine sub forma unui script personalizabil batch 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 folosit pentru o varietate de sarcini utile, cum ar fi:

    • Porniți cu ușurință o aplicație dând dublu clic sau utilizând o tastă rapidă.
    • Reporniți un program numai atunci când acesta este agățat sau nu răspunde.
    • Rulați ca sarcină programată pentru a vă asigura că o aplicație rulează întotdeauna.
    • În orice alt loc doriți să automatizeze reluarea condiționată a unei aplicații.

    Personalizarea script-ului ar trebui să fie destul de explicativă prin comentariile, așa că trebuie doar să configurați scriptul în mod corespunzător și toate setați.

    Scriptul

    @ECHO OFF ECHO Aplicație de repornire ECHO Scris de: Jason Faulkner ECHO SysadminGeek.com ECHO. ECOU. SETLOCAL EnableExtensions REM Introduceți informațiile despre aplicație. SET AppName = Numele aplicației SET ExeFile = FileToLaunch.exe SET ExePath = C: PathToApplication REM Selectați condițiile pentru a ucide aplicația. REM Valoarea 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 = Porniți numai dacă procesul a fost ucis anterior. REM 0 = Porniți aplicația indiferent. SET StartOnlyIfKilled = 1 SET KillStatus = "% TEMP% KillStatus.tmp.txt" SET Success = 0 ECHO Uciderea instanței% AppName% existente ... IF % KillIfRunning% == 1 CALL: CheckKillStatus "% ExeFile%" RUNNING "DACĂ % KillIfNotResponding% == 1 CALL: CheckKillStatus"% ExeFile% "" NU RĂSPUNDE "DACĂ % KillIfUnknownStatus% == 1 CALL: CheckKillStatus"% ExeFile% "ECHO" UNKNOWN ". Dacă % StartOnlyIfKilled% == 1 (IF % Succes% == 0 Sfârșit GOTO) ECHO Repornire% AppName% ... START "% ExeFile%" "% ExePath %% ExeFile%" ECHO. DACĂ EXIST% KillStatus% DEL / F / Q% KillStatus% ENDLOCAL: CheckKillStatus ECHO Uciderea cu status:% ~ 2 TASKKILL / FI "STATUS 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 

    Concluzie

    În timp ce puteți găsi aplicații care funcționează în esență aceeași funcție, folosiți un script simplu, cum ar fi acest lucru, evitând funcționarea "unui alt program" în fundal.