5Sep

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 într-un mod "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 șireporniț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 făcând dublu clic sau utilizând o tastă rapidă.
  • Reporniți un program numai atunci când este agățat sau nu răspunde.
  • Rulați ca sarcină programată pentru a vă asigura că o aplicație este întotdeauna rulată.
  • Oriunde doriți să automatizezi reluarea condiționată a unei aplicații.

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

Script

@ECHO OFF ECHO Repornire aplicație ECHO Scris de: Jason Faulkner ECHO SysadminGeek.com ECHO.ECOU.SETLOCAL EnableExtensions REM Introduceți informațiile despre aplicație. SET AppName = Nume de aplicație 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% cazului% AppName% existent. .. IF{ % KillIfRunning%} =={ 1} CALL: CheckKillStatus "% ExeFile%"RUNNING" DACĂ{ % KillIfNotResponding%} =={ 1} CALL: CheckKillStatus "% ExeFile%" "NU RESPONDEAZĂ" 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 starea:% ~ 2 TASKKILL / FI "STATUS eq% ~ 2" / IM "% ~ 1" / F>% KillStatus% SET / P KillResult = & lt;(%% A%) A( % KillResult%) DO( ECHO %% A: %% B IF / I{ %% A} =={ SUCCESS}SET / A Succes =% Succes% + 1): Încheiați

Concluzie

În timp ce găsiți 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.