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.
fonte
Respostas:
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:
Se não estiver funcionando corretamente (no XP, não tenho certeza sobre o equivalente a 2008):
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!
fonte
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.
fonte
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
fonte
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
fonte