5Sep

Script por lotes para reiniciar condicionalmente una aplicación

El sistema común y / o los eventos ambientales, como reanudar desde el modo de espera o perder conexión de red, pueden causar problemas para ciertas aplicaciones que esperan estar siempre encendidas y conectadas. Entonces, si tiene una cierta aplicación que se bloquea o entra en el modo "no responde" con cierta frecuencia y un reinicio es la única solución para ella, tenemos una solución simple para usted en forma de un script por lotes personalizable para simplemente matar la aplicación yreiniciarlo

Además de la situación obvia anterior, esta secuencia de comandos se puede utilizar 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.
  • Reinicia 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, desea automatizar el reinicio condicional de una aplicación.

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

El script

@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 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 fue asesinado previamente. REM 0 = Inicie la aplicación independientemente. SET StartOnlyIfKilled = 1 SET KillStatus = "% TEMP% KillStatus.tmp.txt" SET Success = 0 ECHO Killing existing% AppName% instance. .. IF{ % KillIfRunning%} =={ 1} LLAME: CheckKillStatus "% ExeFile%""RUNNING" IF{ % KillIfNotResponding%} =={ 1} CALL: CheckKillStatus "% ExeFile%" "NO RESPONDER" IF{ % KillIfUnknownStatus%} =={ 1} CALL: CheckKillStatus "% ExeFile%" "UNKNOWN" ECHO.IF{ % StartOnlyIfKilled%} =={ 1}( IF{ % Success%} =={ 0} GOTO End) ECHO Reinicia% AppName%. .. START "% ExeFile%" "% ExePath %% ExeFile%" ECHO.IF EXIST% KillStatus% DEL / F / Q% KillStatus% ENDLOCAL: CheckKillStatus ECHO Killing con estado:% ~ 2 TASKKILL / FI "ESTADO eq% ~ 2" / IM "% ~ 1" / F & gt;% KillStatus% SET / P KillResult = & lt;% KillStatus% FOR / F "tokens = 1, * delims =:" %% A IN( "% KillResult%") DO( ECHO %% A: %% B IF / I{ %% A} =={ SUCCESS}SET / A Éxito =% 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.