5Sep

Skrypt wsadowy do warunkowego ponownego uruchomienia aplikacji

Wspólny system i / lub zdarzenia ś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ę iuruchom ponownie.

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

  • Łatwe ponowne uruchomienie aplikacji poprzez podwójne kliknięcie lub użycie klawisza skrótu.
  • Uruchom ponownie 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.

Skrypt

@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%""RUNNING" JEŚLI{ % 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 & gt;% KillStatus% SET / P KillResult = & lt;% KillStatus% FOR / F "tokeny = 1, * delims =:" %% A IN( "% KillResult%") DO( ECHO %% A: %% B IF / I{ %% A} =={ SUKCES}SET / A Success =% Success% + 1): Zakończ

Wniosek

Podczas gdy możesz znaleźć aplikacje, które wykonują zasadniczo tę samą funkcję, użycie prostego skryptu, takiego jak to, pozwala uniknąć "kolejnego programu" działającego w tle.