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

Table des matières:

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

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

Vidéo: Script de lot pour redémarrer une application de manière conditionnelle
Vidéo: 5 - Recherche et remplacement avancés dans Word - YouTube 2024, Avril
Anonim

Des événements système et / ou environnementaux courants, 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 actives 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 redémarrez-le.

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 vous suffit donc de configurer le script de manière appropriée et vous êtes tous ensemble.

Le scénario

@ECHO OFF ECHO Restart Application ECHO Written by: Jason Faulkner ECHO SysadminGeek.com ECHO. ECHO. SETLOCAL EnableExtensions REM Enter the application information. SET AppName=Application Name SET ExeFile=FileToLaunch.exe SET ExePath=C:PathToApplication REM Select the conditions to kill the application. REM A value of 1 = Yes, 0 = No SET KillIfRunning=1 SET KillIfNotResponding=1 SET KillIfUnknownStatus=1 REM Specify when to start the application: REM 1 = Start only if the process was previous killed. REM 0 = Start the application regardless. SET StartOnlyIfKilled=1 SET KillStatus='%TEMP%KillStatus.tmp.txt' SET Success=0 ECHO Killing existing %AppName% instance… IF {%KillIfRunning%}=={1} CALL:CheckKillStatus '%ExeFile%' 'RUNNING' IF {%KillIfNotResponding%}=={1} CALL:CheckKillStatus '%ExeFile%' 'NOT RESPONDING' IF {%KillIfUnknownStatus%}=={1} CALL:CheckKillStatus '%ExeFile%' 'UNKNOWN' ECHO. IF {%StartOnlyIfKilled%}=={1} ( IF {%Success%}=={0} GOTO End ) ECHO Restarting %AppName%… START '%ExeFile%' '%ExePath%%ExeFile%' ECHO. IF EXIST %KillStatus% DEL /F /Q %KillStatus% ENDLOCAL:CheckKillStatus ECHO Killing with 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

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.

Conseillé: