Como evitar que tarefas agendadas sejam executadas assim que o computador for ativado?

Como evitar que tarefas agendadas sejam executadas assim que o computador for ativado?

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

Achei que desmarcar a configuração "Executar tarefa o mais rápido possível após a perda de um início agendado" evitaria isso, mas isso não acontece. Existe outra configuração que devo tentar para que a tarefa seja executada somente se o computador estiver ligado no horário agendado (e esperará até o próximo horário agendado se perder)?

Um exemplo das minhas configurações:

insira a descrição da imagem aqui

Responder1

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

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

Este script usa dois parâmetros: o primeiro é o horário 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 em uma variável, mas pode-seiterar sobre sua saída linha após linha. Isso é o que minha segunda linha faz. Como time /ta saída de
é de linha única, há apenas uma iteração, na qual o script lança 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 houver atraso na execução do script.

Eu uso %~2em vez de %2, porque %~2descarta aspas em torno do comando,
para que a passagem "echo x"seja executada echocom argumento x, imprimindo x,
em vez de invocar o programa echo xsem argumentos.

Desvantagens

  1. Iniciar a tarefa sob demanda não fará nada, é melhor desmarcar o campoPermitir que a tarefa seja executada sob demandanoConfiguraçõesguia, para não se confundir com isso,

  2. Modificar a hora de execução da tarefa requer modificar os argumentos para manter a tarefa funcionando,

  3. time /ta produção depende das configurações regionais.

Responder2

Para executar uma tarefa agendada quando o computador estiver ocioso, aumente "Aguarde ocioso por:"e talvez uma marca de seleção"pare se o computador parar de ficar ocioso".

  1. Clique com o botão direito na tarefa que deseja executar quando o computador estiver ocioso e clique em Propriedades.
  2. Na guia Condições, em Tempo de Inatividade, marque a caixa de seleção Iniciar a tarefa somente se o computador estiver inativo por pelo menos.
  3. Insira o período de tempo (em minutos) durante o qual o computador deve ficar ocioso antes que a tarefa seja executada.

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

Para entender o tempo ocioso, siga istolink...

Responder3

Como você deixa seu computador em modo de suspensão/hibernação, então, tecnicamente, você ainda está "conectado" (apenas imediatamente). Então, como alternativa, você pode definir a tarefa para “acordar o computador para executar esta tarefa” em Condições, e ela sempre será executada às 6h. (a menos que você queira estar no console quando a tarefa for executada)

informação relacionada