Como evitar que as tarefas agendadas sejam executadas assim que o computador é reativado?

3

Exemplo: tenho uma tarefa agendada para as 6h todos os dias (somente se eu estiver conectado). Se meu computador durar / hibernar a noite toda até as 9h, ao acordar, a tarefa será executada, mesmo que tenha perdido sua programação das 6h. Não quero que isso aconteça, pois é importante que a tarefa seja executada somente às 6h.

Eu pensei que desmarcar a configuração "Executar tarefa assim que possível depois que um início programado é perdido" impediria isso, mas isso não acontece. Existe outra configuração que eu deveria tentar para que a tarefa seja executada apenas se o computador estiver ligado no horário agendado (e esperará até a próxima hora agendada se errar)?

Um exemplo das minhas configurações:

    
por zants 11.07.2014 / 03:17

2 respostas

1

Encontrei uma solução alternativa: faça sua tarefa iniciar seu script .bat , que iniciará o comando se descobrir que o computador não estava inativo. O script que eu uso é:

@echo off
for /f "delims=" %%t in ('time /t') do if "%%t"=="%1" %~2

Esse script usa dois parâmetros: o primeiro é o tempo em que o comando deve ser chamado e o segundo é o próprio comando, entre aspas, como script.bat 21:40 "echo x" .

Explicação

Ao contrário do Bash, no Batch é impossível armazenar diretamente a saída do comando na variável, mas é possível iterar sua linha de saída após a linha . Isso é o que minha segunda linha faz. Porque a saída de time /t
é single line, existe apenas uma iteração, em que o script inicia o comando (passado como segundo parâmetro) se o script foi chamado quando você queria que ele fosse chamado; esta condição não será atendida quando esta for a execução atrasada do script.

Eu uso %~2 em vez de %2 , porque %~2 descarta aspas em torno do comando,
para que passar "echo x" execute echo com argumento x , imprimindo x ,
em vez de invocar o programa echo x sem argumentos.

Desvantagens

  1. Lançar tarefa sob demanda não fará nada, é melhor você desmarcar o campo Permitir que a tarefa seja executada sob demanda na guia Configurações , para não ficar confuso por isso,

  2. A modificação da hora de execução da tarefa requer a modificação dos argumentos para manter a tarefa funcionando,

  3. A saída de time /t depende das configurações regionais.
por 12.05.2015 / 19:58
0

Para executar uma tarefa agendada quando o computador estiver inativo, aumente " Aguarde por inatividade por: " e talvez marque " pare se o computador deixar de ficar inativo ".

  1. Clique com o botão direito do mouse na tarefa que você deseja executar quando o computador estiver ocioso, e, em seguida, clique em Propriedades.
  2. Na guia Condições, em Tempo ocioso, marque a caixa de seleção Somente iniciar a tarefa se o computador estiver inativo por pelo menos.
  3. Insira o período de tempo (em minutos) para o qual o computador deve estar inativo antes de a tarefa ser executada.

NOTA: Você também pode especificar que qualquer tarefa deve ser interrompida se o computador estiver em uso, selecionando a caixa de seleção Parar a tarefa se o computador parar de ficar inativo.

Para entender o tempo ocioso, siga este link ...

    
por 11.07.2014 / 03:43