Batch-Skript zum bedingten Neustart einer Anwendung
Häufige System- und / oder Umgebungsereignisse, wie z. B. die Wiederaufnahme des Standby-Modus oder der Verlust der Netzwerkverbindung, können Probleme für bestimmte Anwendungen verursachen, von denen erwartet wird, dass sie immer eingeschaltet und verbunden sind. Wenn Sie also eine bestimmte Anwendung haben, die häufig abstürzt oder in den Modus „nicht reagiert“ und ein Neustart die einzige Lösung ist, haben wir eine einfache Lösung in Form eines anpassbaren Batch-Skripts, mit dem Sie die Anwendung einfach beenden können Starten Sie es neu.
Zusätzlich zu der oben beschriebenen offensichtlichen Situation kann dieses Skript für eine Vielzahl nützlicher Aufgaben verwendet werden, z.
- Starten Sie eine Anwendung einfach neu, indem Sie darauf doppelklicken oder einen Hotkey verwenden.
- Starten Sie ein Programm nur dann neu, wenn es hängt oder nicht reagiert.
- Als geplante Aufgabe ausführen, 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. Konfigurieren Sie das Skript also einfach entsprechend, und Sie sind fertig.
Das Skript
@ ECHO OFF ECHO Restart Application 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 Wert 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 = Anwendung trotzdem starten. SET StartOnlyIfKilled = 1 SET KillStatus = "% TEMP% KillStatus.tmp.txt" SET Success = 0 ECHO Beendet vorhandene% AppName% -Instanz ... IF % KillIfRunning% == 1 CALL: CheckKillStatus "% ExeFile%" "RUNNING "WENN % KillIfNotResponding% == 1 CALL: CheckKillStatus"% ExeFile% "" "NOT RESPONDING" WENN % KillIfUnknownStatus% == 1 CALL: CheckKillStatus "% ExeFile%" "UNKNOWN" ECHO. IF % StartOnlyIfKilled% == 1 (IF % Success% == 0 GOTO-Ende) ECHO% AppName% wird neu gestartet ... START "% ExeFile%" "% ExePath %% ExeFile%" ECHO. IF EXIST% KillStatus% DEL / F / Q% KillStatus% ENDLOCAL: CheckKillStatus ECHO Töten mit Status:% ~ 2 TASKKILL / FI "STATUS eq% ~ 2" / IM "% ~ 1" / F>% KillStatus% SET / P KillResult = < %KillStatus% FOR /F "tokens=1,* delims=:" %%A IN ("%KillResult%") DO ( ECHO %%A:%%B IF /I %%A==SUCCESS SET /A Success=%Success%+1 ) :End
Fazit
Sie können zwar Anwendungen finden, die im Grunde die gleiche Funktion ausführen, aber mit einem einfachen Skript wie diesem vermeiden, dass "noch ein anderes Programm" im Hintergrund ausgeführt wird.