5Sep

Batch Script para reiniciar condicionalmente um aplicativo

O sistema comum e / ou eventos ambientais, como a retomada do modo de espera ou a perda de conexão de rede, podem causar problemas para determinados aplicativos que esperam estar sempre conectados. Então, se você tem uma determinada aplicação que falha ou entra no modo "não respondendo" com um pouco de frequência e um reinício é a única correção para isso, temos uma solução simples para você na forma de um script de lote personalizável para simplesmente matar o aplicativo ereinicie-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 está pendurado ou não responde.
  • Execute como uma tarefa agendada para garantir que um aplicativo esteja sempre em execução.
  • Em qualquer outra parte, você deseja automatizar o reinício condicional de um aplicativo.

Personalizar o script deve ser bastante auto-explicativo pelos comentários, então basta configurar o script de forma adequada e você está pronto.

O Script

@ECHO OFF ECHO Reiniciar 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 matar o aplicativo. REM Um valor de 1 = Sim, 0 = Não SET KillIfRunning = 1 SET KillIfNotResponding = 1 SET KillIfUnknownStatus = 1 REM Especificar quando iniciar o aplicativo: REM 1 = Iniciar somente se o processo foi morto anteriormente. REM 0 = Inicie o aplicativo independentemente. SET StartOnlyIfKilled = 1 SET KillStatus = "% TEMP% KillStatus.tmp.txt" SET Sucesso = 0 ECHO Matando existente% AppName% instância. .. IF{ % KillIfRunning%} =={ 1} CHAMADA: CheckKillStatus "% ExeFile%""FUNCIONANDO" SE{ % KillIfNotResponding%} =={ 1} CHAMAR: CheckKillStatus "% ExeFile%" "NÃO RESPONDER" SE ​​{% KillIfUnknownStatus%} =={ 1} CHAMAR: CheckKillStatus "% ExeFile%" "DESCONHECIDO" ECHO.IF{ % StartOnlyIfKilled%} =={ 1}( IF{ % Success%} =={ 0} GOTO End) ECHO Restarting% AppName%. .. INICIAR "% ExeFile%" "% ExePath %% ExeFile%" ECHO.SE EXISTE% KillStatus% DEL / F / Q% KillStatus% ENDLOCAL: CheckKillStatus ECHO Matando com status:% ~ 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 Success =% Success% + 1): Fin

Conclusão

Embora você possa encontrar aplicativos lá fora, que executem basicamente a mesma função, usando um script simples, como esse, evita ter "outro programa" executado em segundo plano.