Execute uma tarefa a cada x minutos com o Agendador de Tarefas do Windows [fechado]

297

Estou tentando fazer com que o Agendador de tarefas do Windows execute um .exe específico a cada 10 minutos, mas as opções permitem apenas a execução uma vez por dia.

Existe uma maneira de fazê-lo executar um .exe a cada 10 ou 20 minutos?

kacalapy
fonte
6
Por mais intuitivo que seja no Windows Server 2008, você pode digitar um número na caixa suspensa "Repetir tarefas a cada" na caixa de diálogo "Editar acionador". Também deixei um link na entrada do MorningZ abaixo.
David Yates
4
O Google fornece várias respostas , incluindo esta da Microsoft .
22813 Phrogz

Respostas:

395

A tarefa deve ser configurada em duas etapas.

Primeiro, você cria uma tarefa simples que começa às 0:00 todos os dias. Em seguida, você entra Advanced...(ou similar, dependendo do sistema operacional em que está) e seleciona a Repeat every X minutesopção por 24 horas.

A chave aqui é encontrar as propriedades avançadas. Se você estiver usando o assistente do XP, ele oferecerá apenas o lançamento da caixa de diálogo avançada após a criação da tarefa.

Nas versões mais recentes do Windows (7+, eu acho?):

  1. Clique duas vezes na tarefa e uma janela de propriedades será exibida.
  2. Clique na Triggersguia
  3. Clique duas vezes nos detalhes do gatilho e a janela Editar gatilho será exibida.
  4. No Advanced settingspainel, marque Repeat task everyxxx minutos e defina, Indefinitelyse necessário.
  5. Por fim, clique em ok.
Coincoin
fonte
39
O problema com esta solução é que, se você reiniciar às 0:05, a tarefa não começará a se repetir até às 23:55 depois!
precisa saber é o seguinte
7
Uma pequena variação seria definir 24 tarefas, cada uma repetida por 1 hora. Então, você nunca perde mais de uma hora de cobertura.
Yablargo
101
@FireCoding não se você tiver definido a tarefa para executar assim que um início agendado for perdido. Em Tarefa> Propriedades> Configurações> VerificarRun task as soon as possible after a scheduled start is missed
Urda
4
@ Urda: Digamos que você defina a tarefa para iniciar às 0:00 e repetir a cada hora. Se você ligar o computador às 06:00 e a opção Run task as soon as possible after...estiver ativada, ele executará uma ou seis instâncias do comando?
Andreas Rejbrand
7
@AndreasRejbrand If this setting is checked, the Task Scheduler service will start the task if the task was scheduled to run at a certain time, but for some reason (for example, the computer was turned off or the Task Scheduler service was busy) the task was not activated. The Task Scheduler service will not start the task immediately after the task was missed. By default the service waits ten minutes before starting the missed task.Portanto, ele deve iniciar apenas 1 instância da tarefa, não todo o backlog.
Urda 03/02
44

Depois de selecionar a opção de repetição mínima (5 minutos ou 10 minutos), você pode destacar o número e escrever o número que desejar

Durim Sinani
fonte
É isso que funciona no Server 2012, pois não há opção 'Avançado'. A chave nessas plataformas é perceber que você pode especificar o que quiser na caixa.
decide
8
longe ... 0 em 10 para descoberta no design de interface do usuário Microsoft!
Damien Sawyer
bom saber, muito bom saber :) Mas não há mais possibilidade de diminuir para segundos, existe? 1 minuto é o mínimo? Eu gostaria de ir para 30 ou mesmo 10 segundos ...
BAERUS
1
Este é um comentário, não uma resposta.
Leo Natan
3
@LeoNatan Na verdade, esta foi a resposta exata que eu estava procurando quando eu caminhava em este post :-)
Jony Adamit
33

Você também pode criar um arquivo em lotes como o seguinte, se precisar de uma granularidade mais fina entre as chamadas:

:loop
CallYour.Exe
timeout /t timeToWaitBetweenCallsInSeconds /nobreak
goto :loop
Kevin Lee
fonte
3
No meu caso, essa foi a solução mais elegante, pois a tarefa em questão já havia sido iniciada a partir de um arquivo em lotes. Portanto, era apenas uma questão de adicionar algumas linhas. Obrigado!
Marlar
1
Eu gosto desta solução. Mas como você garante que esse arquivo em lotes esteja sempre em execução (e apenas uma instância)?
Olivier 'Ölbaum' Scherler
Esta é uma maneira de fazer isso sim, mas o Agendador de tarefas é o caminho a percorrer. Basta usar a opção "Após a inicialização" em vez de uma data específica, e você estará coberto.
Jakob Sternberg
Eu tenho todos os tipos de problemas ao configurar uma tarefa para executar a cada hora. Então, eu gosto dessa solução para fazer um loop e deixá-lo dormir por 1 hora e fazer o loop do trabalho. Só preciso descobrir como o tempo trabalha com o trabalho diário e se as tarefas horárias causam um problema a cada 24 horas.
Dom
23

Em "Repetir tarefa a cada:", digite 2 minutos em vez de escolher na lista suspensa.

Henrik
fonte
2
Obrigado. Era exatamente isso que eu estava procurando. O tempo mínimo permitido no Win 2008 R2 é de 1 minuto.
Timothy C. Quinn
19

No XP, cliquei no Advancedbotão na Scheduleguia. Há uma caixa de seleção paraRepeat task . O padrão é a cada 10 minutos.

Além disso, você pode criar tarefas agendadas por meio da linha de comando . Eu não tentei isso sozinho, mas parece que você deseja algo do tipo (não testado):

schtasks /create /tn "Some task name" /tr "app.exe" /sc HOURLY 
Courtney Christensen
fonte
Estou confuso sobre as opções até. Eu defini-lo para repetir a cada 5 minutos, digamos, então sou forçado a escolher um botão de opção ... O que devo inserir se eu quiser que ele seja executado a cada 5 minutos todos os dias e não pare.
kacalapy
Bem, você está certo. Isso é confuso. Aparentemente, você pode criar um através da linha de comando. Talvez valha a pena tentar. Atualizei a postagem com o link que encontrei.
Courtney Christensen
19

Exemplo de tarefa por hora

Ao seguir o conselho acima com schtasks, você pode ver na interface do usuário o que deve ser feito para executar uma tarefa horária. Quando você edita o gatilho, inicia a tarefa em um agendamento, Uma vez (esta é a chave). Depois, você pode selecionar "Repetir tarefa a cada:" 1 hora ou o que desejar. Veja a captura de tela:

Mike Cush
fonte
1
E usando SCHTASKS /Create?
Kiquenet
8

Para agendar a atualização para ser automática, você deve:

  • Vá para Painel de controle »Ferramentas administrativas» Tarefas agendadas
  • Crie a tarefa (básica)
  • Vá para Agenda »Avançado
  • Marque a caixa de seleção "Repetir tarefa" a cada 10 minutos, com duração de, por exemplo, 24 horas ou indefinidamente
  • Deixe a Data de término desmarcada

Se você não conseguir encontrar as configurações de agendamento, procure em: Propriedades, Editar, Acionadores.

David
fonte
3

Alguns dos links fornecidos são apenas configurações para a versão do Windows 2003 de "Tarefas agendadas"

No Windows Server 2008, a configuração "Tarefas" possui apenas uma caixa com opções para "5 minutos, 10 minutos, 15 minutos, 30 minutos e 1 hora" (captura de tela: http://i46.tinypic.com/2gwx7r8.jpg ) ... onde o Windows 2003 era uma caixa de texto "insira o número que você quiser".

Eu pensei em fazer uma "exportação" e editar o XML de: PT30M para PT2M

e importar isso como uma nova tarefa "enganaria" as tarefas a repetir a cada 2 minutos, mas não gostou disso

Minha solução alternativa para executar uma tarefa a cada 2 minutos no Windows 2008 era configurar 30 "gatilhos" diferentes para a minha tarefa, repetindo a cada hora, mas olhando para: 00,: 02,: 04,: 06 e assim por diante. em .... me levou 8-10 minutos para configurar, mas eu só tinha que fazê-lo uma vez :-)

MorningZ
fonte
12
Mesmo não sendo intuitivo, você pode digitar um número no menu suspenso do Windows Server 2008: social.technet.microsoft.com/Forums/en-US/winserverManagement/…
David Yates