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:
Dostosowanie skryptu powinno być całkiem zrozumiałe w komentarzach, więc po prostu skonfiguruj skrypt odpowiednio i wszystko gotowe.
@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
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.