Los eventos comunes del sistema y / o ambientales, como reanudar desde el modo de espera o perder la conexión de red, pueden causar problemas para ciertas aplicaciones que esperan estar siempre encendidas y conectadas. Por lo tanto, si tiene una determinada aplicación que falla o entra en modo "no responde" con cierta frecuencia y un reinicio es la única solución, tenemos una solución simple para usted en forma de un script por lotes personalizable para simplemente matar la aplicación y reiniciarlo.
Además de la situación obvia anterior, este script se puede utilizar para una variedad de tareas útiles, como:
- Reinicie fácilmente una aplicación haciendo doble clic o usando una tecla de acceso rápido.
- Reinicie un programa solo cuando se cuelgue o no responda.
- Ejecutar como una tarea programada para asegurarse de que una aplicación esté siempre en ejecución.
- En cualquier otro lugar donde desee automatizar el reinicio condicional de una aplicación.
La personalización de la secuencia de comandos debería ser bastante autoexplicativa por los comentarios, así que configure la secuencia de comandos de manera apropiada y estará listo.
La secuencia de comandos
@ECHO APAGADO
Aplicación de reinicio de ECHO
ECHO Escrito por: Jason Faulkner
ECHO SysadminGeek.com
ECO.
ECO.
SETLOCAL EnableExtensions
REM Introduzca la información de la aplicación.
SET AppName = Nombre de la aplicación
SET ExeFile = FileToLaunch.exe
SET ExePath = C: PathToApplication
REM Seleccione las condiciones para matar la aplicación.
REM Un valor de 1 = Sí, 0 = No
SET KillIfRunning = 1
SET KillIfNotResponding = 1
SET KillIfUnknownStatus = 1
REM Especifique cuándo iniciar la aplicación:
REM 1 = Iniciar solo si el proceso se mató anteriormente.
REM 0 = Iniciar la aplicación independientemente.
SET StartOnlyIfKilled = 1
SET KillStatus = "% TEMP% KillStatus.tmp.txt"
SET Success = 0
ECHO Eliminando la instancia de% AppName% existente ...
IF {%KillIfRunning%} == {1} CALL: CheckKillStatus "% ExeFile%" "RUNNING"
SI {%KillIfNotResponding%} == {1} LLAMADA: CheckKillStatus "% ExeFile%" "NO RESPONDE"
IF {%KillIfUnknownStatus%} == {1} CALL: CheckKillStatus "% ExeFile%" "UNKNOWN"
ECO.
SI {%StartOnlyIfKilled%} == {1} (
IF {%Success%} == {0} GOTO Fin
)
ECHO Reiniciando% AppName% ...
INICIO "% ExeFile%" "% ExePath %% ExeFile%"
ECO.
SI EXISTE% KillStatus% DEL / F / Q% KillStatus%
ENDLOCAL
: CheckKillStatus
Asesinato ECHO con estado:% ~ 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
Conclusión
Si bien puede encontrar aplicaciones que realizan básicamente la misma función, el uso de un script simple como este evita tener "otro programa más" ejecutándose en segundo plano.