Script em lote para reiniciar condicionalmente um aplicativo

Índice:

Script em lote para reiniciar condicionalmente um aplicativo
Script em lote para reiniciar condicionalmente um aplicativo

Vídeo: Script em lote para reiniciar condicionalmente um aplicativo

Vídeo: Script em lote para reiniciar condicionalmente um aplicativo
Vídeo: Comando date - Visualizando e ajustando a hora do sistema no Linux - YouTube 2024, Maio
Anonim

Eventos comuns do sistema e / ou ambientais, como a retomada do modo de espera ou a perda da conexão de rede, podem causar problemas para determinados aplicativos que esperam estar sempre ligados e conectados. Então, se você tem um certo aplicativo que falha ou entra no modo "não respondendo" com certa frequência e uma reinicialização é a única correção, temos uma correção simples para você na forma de um script em lote personalizável para simplesmente matar o aplicativo e reinicie-o.

Além da situação óbvia acima, esse script pode ser usado para uma variedade de tarefas úteis, como:

  • Reinicie facilmente um aplicativo clicando duas vezes ou usando uma tecla de atalho.
  • Reinicie um programa apenas quando estiver suspenso ou não estiver respondendo.
  • Executar como uma tarefa agendada para garantir que um aplicativo esteja sempre em execução.
  • Em qualquer outro lugar você deseja automatizar o reinício condicional de um aplicativo.

A customização do script deve ser bastante auto-explicativa pelos comentários, portanto, basta configurar o script apropriadamente e está tudo pronto.

O script

@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

Conclusão

Enquanto você pode encontrar aplicativos lá fora, que executam basicamente a mesma função, usando um script simples como isso evita ter "ainda outro programa" em execução em segundo plano.

Recomendado: