Les événements courants du système et / ou de l'environnement, tels que la reprise du mode veille ou la perte de la connexion réseau, peuvent entraîner des problèmes pour certaines applications qui s'attendent à être toujours actives et connectées. Donc, si vous avez une certaine application qui plante ou entre en mode «ne répond pas» assez fréquemment et qu'un redémarrage est le seul correctif, nous avons une solution simple pour vous sous la forme d'un script batch personnalisable pour simplement tuer l'application et redémarrez-le.
En plus de la situation évidente ci-dessus, ce script peut être utilisé pour une variété de tâches utiles, telles que:
- Redémarrez facilement une application en double-cliquant ou en utilisant un raccourci clavier.
- Redémarrez un programme uniquement lorsqu'il se bloque ou ne répond pas.
- Exécutez en tant que tâche planifiée pour vous assurer qu'une application est toujours en cours d'exécution.
- Partout ailleurs, vous souhaitez automatiser le redémarrage conditionnel d'une application.
La personnalisation du script devrait être assez explicite par les commentaires, alors configurez simplement le script de manière appropriée et vous êtes prêt.
Le script
@ÉCHO OFF
Application de redémarrage ECHO
ECHO Rédigé par: Jason Faulkner
ECHO SysadminGeek.com
ÉCHO.
ÉCHO.
SETLOCAL EnableExtensions
REM Entrez les informations sur l'application.
SET AppName = Nom de l'application
SET ExeFile = FileToLaunch.exe
SET ExePath = C: PathToApplication
REM Sélectionnez les conditions pour arrêter l'application.
REM Une valeur de 1 = Oui, 0 = Non
SET KillIfRunning = 1
SET KillIfNotResponding = 1
SET KillIfUnknownStatus = 1
REM Spécifiez quand démarrer l'application:
REM 1 = Démarrer uniquement si le processus a été précédemment tué.
REM 0 = Démarre l'application malgré tout.
SET StartOnlyIfKilled = 1
SET KillStatus = "% TEMP% KillStatus.tmp.txt"
SET Success = 0
ECHO Suppression de l'instance% AppName% existante ...
IF {%KillIfRunning%} == {1} APPEL: CheckKillStatus "% ExeFile%" "RUNNING"
IF {%KillIfNotResponding%} == {1} APPEL: CheckKillStatus "% ExeFile%" "NE REPOND PAS"
IF {%KillIfUnknownStatus%} == {1} APPEL: CheckKillStatus "% ExeFile%" "INCONNU"
ÉCHO.
SI {%StartOnlyIfKilled%} == {1} (
IF {%Success%} == {0} Fin GOTO
)
ECHO Redémarrage de% AppName% ...
START "% ExeFile%" "% ExePath %% ExeFile%"
ÉCHO.
SI EXISTANT% KillStatus% DEL / F / Q% KillStatus%
ENDLOCAL
: CheckKillStatus
ECHO Killing avec statut:% ~ 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
)
:Fin
Conclusion
Bien que vous puissiez trouver des applications qui exécutent essentiellement la même fonction, l'utilisation d'un script simple comme celui-ci évite d'avoir «encore un autre programme» en arrière-plan.