Página principal » cómo » Secuencia de comandos de lote para reiniciar condicionalmente una aplicación

    Secuencia de comandos de lote para reiniciar condicionalmente una aplicación

    Los eventos comunes del sistema y / o del entorno, como la reanudación del modo de espera o la pérdida de la conexión de red, pueden causar problemas para ciertas aplicaciones que esperan estar siempre conectadas y conectadas. Por lo tanto, si tiene una aplicación determinada 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 eliminar la aplicación y reiniciarlo.

    Además de la situación obvia anterior, este script se puede usar para una variedad de tareas útiles, tales como:

    • Reinicie fácilmente una aplicación haciendo doble clic o usando una tecla de acceso rápido.
    • Reinicie un programa solo cuando está colgado o no responde.
    • Ejecutar como una tarea programada para asegurarse de que una aplicación siempre se está ejecutando.
    • En cualquier otro lugar que desee automatizar el reinicio condicional de una aplicación.

    La personalización de la secuencia de comandos debe ser bastante autoexplicativa por los comentarios, así que simplemente configure la secuencia de comandos adecuadamente y ya está todo listo.

    La secuencia de comandos

    @ECHO OFF ECHO Reinicie la aplicación ECHO Escrito por: Jason Faulkner ECHO SysadminGeek.com ECHO. ECO. SETLOCAL EnableExtensions REM Ingrese la información de la aplicación. SET AppName = Nombre de la aplicación SET ExeFile = FileToLaunch.exe SET ExePath = C: PathToApplication REM Selecciona las condiciones para finalizar 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 fue eliminado anteriormente. REM 0 = Iniciar la aplicación independientemente. SET StartOnlyIfKilled = 1 SET KillStatus = "% TEMP% KillStatus.tmp.txt" SET Success = 0 ECHO Eliminando el% AppName% de instancia existente ... IF % KillIfRunning% == 1 CALL: CheckKillStatus "% ExeFile%" RUNNING "IF % KillIfNotResponding% == 1 CALL: CheckKillStatus"% ExeFile% "" NO RESPONDE "IF % KillIfUnknownStatus% == 1 CALL: CheckKillStatus"% ExeFile% "" UNKNOWN "ECHO. IF % StartOnlyIfKilled% == 1 (IF % Success% == 0 Fin de GOTO) ECHO Reiniciando% AppName%… INICIO "% ExeFile%" "% ExePath %% ExeFile%" ECHO. IF EXIST% KillStatus% DEL / F / Q% KillStatus% ENDLOCAL: CheckKillStatus ECHO Matar 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 ) :End 

    Conclusión

    Si bien puede encontrar aplicaciones que realizan básicamente la misma función, el uso de un script simple como este evita que se ejecute "otro programa" en segundo plano.