Script em lote para reiniciar condicionalmente um aplicativo
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 certos 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.
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 personalizaçã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 Reinicie a aplicação ECHO Escrito por: Jason Faulkner ECHO SysadminGeek.com ECHO. 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 eliminar o aplicativo. REM Um valor de 1 = Sim, 0 = Não SET KillIfRunning = 1 SET KillIfNotResponding = 1 SET KillIfUnknownStatus = 1 REM Especifique quando iniciar a aplicação: REM 1 = Iniciar somente se o processo foi anulado. REM 0 = Inicia a aplicação independentemente. SET StartOnlyIfKilled = 1 SET KillStatus = "% TEMP% KillStatus.tmp.txt" SET Sucesso = 0 ECHO Matando a instância% AppName% atual ... SE % KillIfRunning% == 1 CHAMADA: CheckKillStatus "% ExeFile%" "RUNNING "SE % KillIfNotResponding% == 1 CHAMADA: CheckKillStatus"% ExeFile% "" NÃO RESPONDE "SE % KillIfUnknownStatus% == 1 CHAMADA: CheckKillStatus"% ExeFile% "" DESCONHECIDO "ECHO. SE % StartOnlyIfKilled% == 1 (SE % Success% == 0 GOTO End) ECHO Reiniciando% AppName%… START "% ExeFile%" "% ExePath %% ExeFile%" ECHO. IF EXIST% KillStatus% DEL / F / Q% KillStatus% ENDLOCAL: CheckKillStatus ECHO Matança 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 Success=%Success%+1 ) :End
Conclusão
Enquanto você pode encontrar aplicativos por aí que executam basicamente a mesma função, usar um script simples como esse evita que “outro programa” seja executado em segundo plano.