Eventos comuns do sistema e / ou ambientais, como retomar do modo de espera ou perder a conexão de rede, podem causar problemas para determinados aplicativos que esperam estar sempre ligados e conectados. Portanto, se você tiver um determinado aplicativo que trava ou entra em modo "sem resposta" com certa frequência e uma reinicialização é a única correção para isso, temos uma correção simples para você na forma de um script de lote personalizável para simplesmente matar o aplicativo e reinicie-o.
Além da situação óbvia acima, este 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 ele estiver travado ou não responder.
- Execute 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.
Personalizar o script deve ser bastante autoexplicativo pelos comentários, então apenas configure o script apropriadamente e está tudo pronto.
O roteiro
@ECHO OFF
ECHO Reiniciar aplicativo
ECHO Escrito por: Jason Faulkner
ECHO SysadminGeek.com
ECO.
ECO.
SETLOCAL EnableExtensions
REM Insira as informações do aplicativo.
SET AppName = Nome do aplicativo
SET ExeFile = FileToLaunch.exe
SET ExePath = C: PathToApplication
REM Selecione as condições para encerrar o aplicativo.
REM A valor de 1 = Sim, 0 = Não
SET KillIfRunning = 1
SET KillIfNotResponding = 1
SET KillIfUnknownStatus = 1
REM Especifique quando iniciar o aplicativo:
REM 1 = Iniciar somente se o processo foi eliminado anteriormente.
REM 0 = Iniciar o aplicativo independentemente.
SET StartOnlyIfKilled = 1
SET KillStatus = "% TEMP% KillStatus.tmp.txt"
SET Sucesso = 0
ECHO eliminando instância existente de% AppName% ...
IF {%KillIfRunning%} == {1} CHAMADA: CheckKillStatus "% ExeFile%" "RUNNING"
IF {%KillIfNotResponding%} == {1} CHAMADA: CheckKillStatus "% ExeFile%" "NÃO RESPONDE"
IF {%KillIfUnknownStatus%} == {1} CHAMADA: CheckKillStatus "% ExeFile%" "DESCONHECIDO"
ECO.
IF {%StartOnlyIfKilled%} == {1} (
IF {%Success%} == {0} GOTO End
)
ECHO reiniciando% AppName% ...
START "% ExeFile%" "% ExePath %% ExeFile%"
ECO.
SE EXISTIR% KillStatus% DEL / F / Q% KillStatus%
ENDLOCAL
: CheckKillStatus
ECHO Killing com 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 Sucesso =% Sucesso% + 1
)
:Fim
Conclusão
Embora você possa encontrar aplicativos que executam basicamente a mesma função, usar um script simples como este evita ter “mais um programa” em execução em segundo plano.