Agendar tarefas do Windows a cada minuto

13

Preciso agendar uma tarefa do Windows para executar um script a cada minuto. Na maioria dos casos, o script não precisa executar nada e existe imediatamente. Quando o script precisar executar algo, desejo que ele inicie o trabalho o mais rápido possível, portanto, o intervalo de um minuto.

Agora, a interface do usuário do Windows Scheduler se tornou bastante confusa nos últimos anos, então não tenho certeza de qual é a melhor maneira de executar uma tarefa a cada minuto (ou 5 minutos ...) no Windows 2008 R2.

Essa é a melhor maneira de agendar uma tarefa no Windows a cada minuto? É confiável? Inicia-se diretamente após a reinicialização de uma máquina ou é reiniciada apenas às 12h? Observe que não posso usar / escrever um aplicativo de serviço personalizado para isso, pois preciso que ele seja muito portátil.

Dennis G.
fonte
Não, não é o melhor caminho. Você deve usar uma função de suspensão ou espera no seu script.
27413 Joseph Kern

Respostas:

4

Sim, este serviço será executado após a reinicialização, você pode verificá-lo no log de transações do serviço Agendador de Tarefas:

    Raiz do sistema \ SchedLgU.txt

    (onde Systemroot é sua pasta de instalação do Windows)

Se não estiver funcionando corretamente (no XP, não tenho certeza sobre o equivalente a 2008):

    
    Painel de Controle -> Ferramentas Administrativas -> Serviços -> Agendador de Tarefas 

    Defina como automático. 

Documentação 2008 aqui , XP Documentação aqui

O agendamento da tarefa começa no horário especificado, depois é executado com base nos parâmetros de repetição. A hora de início pode ser considerada como "hora da instalação da tarefa", não faz parte dos parâmetros de repetição (exceto como um deslocamento do temporizador). Espero que faça sentido!

Andy
fonte
Na verdade, eu quis dizer que se a máquina for reiniciada, a tarefa será acionada novamente diretamente após a reinicialização ou será iniciada novamente apenas às 12h, conforme especificado na GUI? Eu preciso a tarefa seja executada a cada minuto, independentemente de uma reinicialização da máquina etc.
Dennis G.
E como posso muito se uma tarefa foi executada? Ele está registrado em algum lugar no log de eventos? Não consigo encontrar nenhuma entrada de log. Obrigado.
Dennis G.
Resposta atualizada para esclarecimento
Andy
18

Eu tinha esse mesmo requisito. No Server 2008, você pode modificar a lista suspensa Repetir a cada tarefa . Por padrão, o valor mais baixo é "5 minutos" , mas você pode simplesmente digitar "1 minuto" . Você pode verificar isso olhando para a guia Triggers e vendo que diz "... repita a cada 00:01:00 ..." . Você também pode tentar digitar "10 segundos" e receberá um erro ao solicitar que escolha algo maior que 1 minuto.

coryvb123
fonte
3
Esta foi a parte da pergunta na qual eu estava interessado. Posso confirmar que ainda funciona no 2012 R2.
Melikoth 11/04
8

Consigo agendar uma tarefa para repetir uma vez por minuto com a linha de comando "schtasks". Um exemplo do código é:

schtasks / create / sc minute / mo 1 / tn "Nome da tarefa" / tr c: \ temp \ filename.exe

A tarefa é exibida na GUI do Windows 2008 R2 e é executada uma vez por minuto. A tarefa precisa ser criada e modificada com o utilitário "schtasks" da linha de comandos.

Infelizmente, a Microsoft projetou tolamente o agendador de tarefas do Windows 2008 R2, descartando a configuração flexível encontrada no Agendador de Tarefas do Windows 2003, em favor de algumas opções limitadas de intervalos.

davephan

davephan
fonte
Isso funciona no Win7. Thanx.
Vladimir Vukanac
-1

tente isso, funcionou para mim ...

REM =================================================== ===============

REM # MAINBODY

REM =================================================== ==============

if "% 1" == "" echo Uso: - C: \ scripts \ port_schtask.cmd ^ ^ &&% SystemRoot% \ system32 \ ping 127.0.0.1 -n 10> nul && exit

se não existir C: \ scripts \ port.bat echo Uso: - O arquivo NÃO existe C: \ scripts \ port.bat &&% SystemRoot% \ system32 \ ping 127.0.0.1 -n 10> nul && exit

% SystemRoot% \ system32 \ schtasks / delete / tn "port.bat% 1% 2" / f

% SystemRoot% \ system32 \ schtasks / create / tr "C: \ scripts \ port.bat% 1% 2" / SC MINUTE / MO 1 / tn "port.bat% 1% 2" / RU "SYSTEM"

% SystemRoot% \ system32 \ SCHTASKS / run / TN "port.bat% 1% 2"

% SystemRoot% \ system32 \ SCHTASKS |% SystemRoot% \ system32 \ find.exe "port.bat% 1% 2"

% SystemRoot% \ system32 \ schtasks / query / TN "port.bat% 1% 2"

% SystemRoot% \ system32 \ ping 127.0.0.1 -n 10> nul

rem ------------------------------------------------- -----

Saúde RJB

RJB
fonte
Por que você está executando ações irrelevantes, como executar ping no host local?
tu-Restabelece Monica-dor duh