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

Tabla de contenido:

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

Video: Secuencia de comandos de lote para reiniciar condicionalmente una aplicación
Video: 🕑 CONFIGURA LA HORA EN LINUX DESDE LA TERMINAL 2024, Marcha
Secuencia de comandos de lote para reiniciar condicionalmente una aplicación
Secuencia de comandos de lote para reiniciar condicionalmente una aplicación
Anonim

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 de "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, 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, desea 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 estará listo.

La secuencia de comandos

@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

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" en ejecución en segundo plano.

Recomendado: