Agendador de Tarefas do Windows, execute a tarefa se a tarefa não estiver em execução?

2

Como garanto que uma tarefa está sendo executada o tempo todo?

Eu uso o speedfan para controlar meus fãs e ocasionalmente ele falha ou precisa ser reiniciado. Se eu sair manualmente do speedfan porque não está funcionando corretamente, ele não reabre automaticamente.

Como posso usar o Agendador de Tarefas para garantir que ele sempre seja executado, mesmo que não esteja em execução?

Atualmente, ele está configurado para ser executado sempre que eu fizer logon e está configurado para reiniciar se a tarefa falhar, mas ainda não está reabrindo.

Obrigado

    
por George Othen 06.07.2016 / 22:18

1 resposta

2

Agendador de tarefas - execute a tarefa se ela não estiver em execução

Você pode usar um script em lote semelhante ao abaixo e usar a Lista de tarefas e FindStr para verificar se o nome EXE do SpeedFan está sendo executado na memória. Com a lógica abaixo, Inicia o EXE, se não for encontrado em execução na memória.

Exemplo de script em lote

Certifique-se de substituir o valor SpeedFan.exe pelo nome real do arquivo EXE executado quando você iniciar o aplicativo e ele estiver funcionando corretamente se for algo diferente no SET EXEName=SpeedFan.exe .

Você precisará garantir que o caminho explícito completo para o EXE também esteja na lógica abaixo do que ele realmente é; portanto, basta substituir (no SET EXEFullPath=C:\Program Files\SpeedFan\SpeedFan.exe ) pelo caminho real do aplicativo EXE; depois que o sinal = é onde você vai mudar isso.

Apenas agendado para ser executado com o Agendador de Tarefas a cada 1 minuto, 30 segundos ou, no entanto, você gostaria que esse processo fosse verificado se estava sendo executado ou não e, em seguida, se não fosse iniciado.

@ECHO OFF

SET EXEName=SpeedFan.exe
SET EXEFullPath=C:\Program Files\SpeedFan\SpeedFan.exe

TASKLIST | FINDSTR /I "%EXEName%"
IF ERRORLEVEL 1 GOTO :StartSpeedFan
GOTO EOF

:StartSpeedFan
START "" "%EXEFullPath%"
GOTO EOF
    
por 07.07.2016 / 00:35