Page d'accueil » comment » Script de lot pour redémarrer une application de manière conditionnelle

    Script de lot pour redémarrer une application de manière conditionnelle

    Des événements système et / ou environnementaux communs, tels que la sortie de veille ou la perte de la connexion réseau, peuvent poser des problèmes pour certaines applications supposées être toujours activées et connectées. Donc, si vous avez une application qui se bloque ou passe en mode "ne répond pas" assez fréquemment et si un redémarrage est la seule solution, nous avons une solution simple, sous la forme d'un script batch personnalisable qui supprime simplement l'application et le redémarrer.

    En plus de la situation évidente ci-dessus, ce script peut être utilisé pour diverses tâches utiles, telles que:

    • Redémarrez facilement une application en double-cliquant ou en utilisant une touche de raccourci.
    • Redémarrez un programme uniquement s'il est bloqué ou s'il ne répond pas.
    • Exécuter en tant que tâche planifiée pour s'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 doit être assez explicite par les commentaires, il suffit donc de configurer le script de manière appropriée et vous êtes tous ensemble.

    Le scénario

    @ECHO OFF ECHO Redémarrez l'application ECHO Écrit par: Jason Faulkner ECHO SysadminGeek.com ECHO. ÉCHO. SETLOCAL EnableExtensions REM Entrez les informations de l'application. SET AppName = Nom de l'application SET ExeFile = FileToLaunch.exe SET ExePath = C: PathToApplication REM Sélectionnez les conditions pour tuer 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 déjà été tué. REM 0 = Lancer l'application quand même. SET StartOnlyIfKilled = 1 SET KillStatus = "% TEMP% KillStatus.tmp.txt" SET Succès = 0 ECHO Tue l'instance% AppName% existante… SI % KillIfRunning% == 1 APPELER: CheckKillStatus "% ExeFile%" "RUNNING "SI % KillIfNotResponding% == 1 APPEL: CheckKillStatus"% ExeFile% "" NE REPONSE PAS "SI % KillIfUnknownStatus% == 1 APPEL: CheckKillStatus"% EXEFile% "de" inconnu "ECHO. IF % StartOnlyIfKilled% == 1 (IF % Success% == 0 GOTO End) Redémarrage de ECHO% AppName%… START "% ExeFile%" "% ExePath %% ExeFile%" ECHO. SI EXIST% KillStatus% DEL / F / Q% KillStatus% ENDLOCAL: CheckKillStatus ECHO Exécution avec le 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 ) :End 

    Conclusion

    Bien que vous puissiez trouver des applications qui remplissent pratiquement la même fonction, l'utilisation d'un script simple comme celui-ci évite d'avoir "encore un autre programme" exécuté en arrière-plan..