5Sep
Allgemeine System- und / oder Umgebungsereignisse, z. B. das Wiederaufnehmen aus dem Standby-Modus oder das Verlieren der Netzwerkverbindung, können bei bestimmten Anwendungen zu Problemen führen, da diese immer eingeschaltet und verbunden sind. Wenn Sie also eine bestimmte Anwendung haben, die abstürzt oder in den Modus "nicht reagiert" wechselt und ein Neustart die einzige Lösung ist, haben wir eine einfache Lösung für Sie in Form eines anpassbaren Batch-Skripts, um die Anwendung einfach zu beendenstarte es neu.
Zusätzlich zu der offensichtlichen Situation oben, kann dieses Skript für eine Vielzahl von nützlichen Aufgaben verwendet werden, wie zum Beispiel:
- Starten Sie eine Anwendung einfach per Doppelklick oder mit einem Hotkey.
- Starten Sie ein Programm nur neu, wenn es hängt oder nicht reagiert.
- Wird als geplante Aufgabe ausgeführt, um sicherzustellen, dass eine Anwendung immer ausgeführt wird.
- Überall wo Sie den bedingten Neustart einer Anwendung automatisieren möchten.
Das Anpassen des Skripts sollte durch die Kommentare ziemlich selbsterklärend sein, also konfigurieren Sie das Skript entsprechend und Sie sind bereit.
Das Skript
@ECHO OFF ECHO Neustart Anwendung ECHO Geschrieben von: Jason Faulkner ECHO SysadminGeek.com ECHO.ECHO.SETLOCAL EnableExtensions REM Geben Sie die Anwendungsinformationen ein. SET AppName = Anwendungsname SET ExeFile = FileToLaunch.exe SET ExePath = C: PathToApplication REM Wählen Sie die Bedingungen aus, um die Anwendung zu beenden. REM Ein Wert von 1 = Ja, 0 = Nein SET KillIfRunning = 1 SET KillIfNotResponding = 1 SET KillIfUnknownStatus = 1 REM Geben Sie an, wann die Anwendung gestartet werden soll: REM 1 = Nur starten, wenn der Prozess zuvor beendet wurde. REM 0 = Starten Sie die Anwendung unabhängig. SET StartOnlyIfKilled = 1 SET KillStatus = "% TEMP% KillStatus.tmp.txt" SET Erfolg = 0 ECHO Töten von vorhandenem% AppName% Instanz. .. IF{ % KillIfRunning%} =={ 1} CALL: CheckKillStatus "% ExeFile%""RUNNING" WENN{ % KillIfNotResponding%} =={ 1} CALL: CheckKillStatus "% ExeFile%" "NICHT REAGIEREN" WENN{ % KillIfUnknownStatus%} =={ 1} CALL: CheckKillStatus "% ExeFile%" "UNBEKANNT" ECHO.IF{ % StartOnlyIfKilled%} =={ 1}( IF{ % Erfolg%} =={ 0} GOTO Ende) ECHO Neustart% AppName%. .. START "% ExeFile%" "% ExePath %% ExeFile%" ECHO.IF EXIST% KillStatus% DEL / F / Q% KillStatus% ENDLOCAL: CheckKillStatus ECHO Killing mit Status:% ~ 2 TASKKILL / FI "STATUS EQ% ~ 2" / IM "% ~ 1" / F & gt;% KillStatus% SET / P KillResult = & lt;% KillStatus% FOR / F "Token = 1, * delims =:" %% A IN( "% KillResult%") DO( ECHO %% A: %% IF / I{ %% A} =={ SUCCESS}SET / A Success =% Success% + 1):beenden Fazit
Während man Anwendungen finden kann, die im Prinzip die gleiche Funktion haben, vermeidet man mit einem einfachen Skript, dass "noch ein anderes Programm" im Hintergrund läuft.