If-Koubou

Skrypt wsadowy do warunkowego ponownego uruchomienia aplikacji

Skrypt wsadowy do warunkowego ponownego uruchomienia aplikacji (Jak)

Powszechne zdarzenia systemowe i / lub środowiskowe, takie jak wznowienie ze stanu wstrzymania lub utrata połączenia sieciowego, mogą powodować problemy w przypadku niektórych aplikacji, które oczekują, że będą zawsze włączone i podłączone. Jeśli więc masz pewną aplikację, która często się zawiesza lub przechodzi w tryb "nie odpowiada", a jedynym jej rozwiązaniem jest ponowne uruchomienie, mamy dla ciebie prostą poprawkę w postaci konfigurowalnego skryptu wsadowego, który po prostu zabije aplikację i uruchom ponownie.

Oprócz powyższej oczywistej sytuacji skrypt ten może być używany do wielu przydatnych zadań, takich jak:

  • Z łatwością uruchom ponownie aplikację, klikając dwukrotnie lub używając klawisza skrótu.
  • Zrestartuj program tylko wtedy, gdy jest zawieszony lub nie odpowiada.
  • Uruchom jako zaplanowane zadanie, aby upewnić się, że aplikacja jest zawsze uruchomiona.
  • Gdziekolwiek indziej chcesz zautomatyzować warunkowe restartowanie aplikacji.

Dostosowanie skryptu powinno być całkiem zrozumiałe w komentarzach, więc po prostu skonfiguruj skrypt odpowiednio i wszystko gotowe.

Scenariusz

@ECHO OFF ECHO Uruchom ponownie aplikację ECHO Napisane przez: Jason Faulkner ECHO SysadminGeek.com ECHO. ECHO. SETLOCAL EnableExtensions REM Wprowadź informacje o aplikacji. SET AppName = Nazwa aplikacji SET ExeFile = FileToLaunch.exe SET ExePath = C: PathToApplication REM Wybierz warunki, aby zabić aplikację. REM Wartość 1 = Tak, 0 = Brak SET KillIfRunning = 1 SET KillIfNotResponding = 1 SET KillIfUnknownStatus = 1 REM Określ, kiedy uruchomić aplikację: REM 1 = Uruchom tylko, jeśli proces został wcześniej zabity. REM 0 = Uruchom aplikację niezależnie. SET StartOnlyIfKilled = 1 SET KillStatus = "% TEMP% KillStatus.tmp.txt" SET Success = 0 ECHO Zabijanie istniejącej instancji% AppName% ... IF % KillIfRunning% == 1 WEZWANIE: CheckKillStatus "% ExeFile%" "BIEGANIE "IF % KillIfNotResponding% == 1 WEZWANIE: CheckKillStatus"% ExeFile% "" NOT RESPONDING "JEŚLI % KillIfUnknownStatus% == 1 WEZWANIE: CheckKillStatus"% ExeFile% "" UNKNOWN "ECHO. IF % StartOllyIfKilled% == 1 (JEŻELI % sukcesu% == 0 GOTO koniec) ECHO Restartowanie% AppName% ... START "% ExeFile%" "% ExePath %% ExeFile%" ECHO. JEŚLI EXIST% KillStatus% DEL / F / Q% KillStatus% ENDLOCAL: CheckKillStatus ECHO Killing ze statusem:% ~ 2 TASKKILL / FI "STATUS eq% ~ 2" / IM "% ~ 1" / F>% KillStatus% SET / P KillResult = <% KillStatus% FOR / F "tokeny = 1, * delims =:" %% A IN ("% KillResult%") DO (ECHO %% A: %% B IF / I %% A == SUKCES USTAW / A Sukces =% Sukces% + 1): Koniec 

Wniosek

Podczas gdy można znaleźć aplikacje, które wykonują zasadniczo tę samą funkcję, za pomocą prostego skryptu, takiego jak to, unika się posiadania "kolejnego programu" działającego w tle.