3

Пример: у меня есть задача, назначенная на 6 часов утра каждый день (только если я вошел в систему). Если мой компьютер спит / спит всю ночь до 9 утра, то после пробуждения задание будет запускаться, даже если оно пропустило 6 часов утра. Я не хочу, чтобы это произошло, потому что важно, чтобы задание выполнялось только в 6 утра.

Я думал, что снятие флажка "Запускать задачу как можно скорее после пропуска запланированного запуска" предотвратит это, но это не так. Есть ли другой параметр, который я должен попробовать, чтобы задача запускалась, только если компьютер включен в запланированное время (и будет ждать до следующего запланированного времени, если он пропустит его)?

Пример моих настроек:

2 ответа2

1

Я нашел обходной путь: заставьте свою задачу запустить скрипт .bat , который запустит команду, если обнаружит, что компьютер не спит. Скрипт, который я использую:

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

Этот скрипт принимает два параметра: первый - это время, когда команда предназначена для вызова , а второй - сама команда в кавычках, например script.bat 21:40 "echo x" .

объяснение

В отличие от Bash, в Batch невозможно напрямую сохранить выходные данные команды в переменной, но можно перебирать ее выходные строки за строкой. Это то, что делает моя вторая строка. Потому что time /t выход
является одной строкой, есть только одна итерация, в которой скрипт запускает команду (переданную как второй параметр), если скрипт вызывался, когда вы хотели, чтобы он был вызван; это условие не будет выполнено, если это задержит выполнение скрипта.

Я использую %~2 вместо %2 , потому что %~2 отбрасывает кавычки вокруг команды,
так что передача "echo x" будет выполнять echo с аргументом x , печатая x ,
вместо вызова программы echo x без аргументов.

Недостатки

  1. Запуск задачи по требованию ничего не изменит, лучше снимите флажок Разрешить запуск задачи по требованию на вкладке « Настройки », чтобы это не смущало,

  2. Изменение часа выполнения задачи требует изменения аргументов для поддержания работы задачи,

  3. time /t зависит от региональных настроек.
0

Чтобы запустить запланированное задание во время простоя компьютера, поднимите « Ожидание простоя: » и, возможно, установите флажок « Стоп, если компьютер перестанет бездействовать ».

  1. Щелкните правой кнопкой мыши задачу, которую вы хотите запустить, когда компьютер бездействует, и выберите Свойства.
  2. На вкладке «Условия» в разделе «Время простоя» установите флажок «Только запускать задачу, если компьютер простаивал хотя бы минимум».
  3. Введите интервал времени (в минутах), в течение которого компьютер должен простаивать перед выполнением задачи.

ПРИМЕЧАНИЕ. Можно также указать, что любая задача должна быть остановлена, если компьютер используется, установив флажок Остановить задачу, если компьютер перестает работать в режиме ожидания.

Чтобы понять простой, перейдите по этой ссылке ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .