Что командная строка состоит в том, чтобы запланировать задачу, которая будет выполняться однажды и скоро?

Я знаю, что существует в и schtasks. Но я не мог выяснить, как использовать их для выполнения задачи скоро и однажды. Я читал о скоро команда, но в моей версии Windows нет такой команды.

Я планирую включать эту команду в пакетный файл и, из-за этого, я не могу hardcode время начала.

7
задан 08.02.2011, 23:09

4 ответа

Команда schtasks может сразу выполнить определенную задачу.

От того, Как использовать Schtasks.exe для Планирования Задач в Windows Server 2003

Schtasks / Выполнение

Сразу запускает запланированную задачу. Операция выполнения игнорирует расписание, но использует местоположение программного файла, учетную запись пользователя и пароль, которые сохраняются в задаче сразу выполнить задачу.

Синтаксис:

schtasks /run /tn TaskName [/s computer [/u [domain\]user /p password]] /?

Поэтому просто определите задачу, затем выполните ее сразу в любое время, Вы должны.

6
ответ дан 07.12.2019, 14:33

Работа сверху ответа Keith для удовлетворения потребностям:

timeout /t X ; psexec -i -s Y

Где

  1. timeout замены спят в Windows 7.
  2. X секунды должны ожидать определенные /t, добавить /nobreak если Вы хотите не разрешить пользователю продолжать.
  3. psexec от Microsoft SysInternals позволяет Вам работать интерактивный (-i) как локальная система (-s), обратите внимание на то, что необходимо запустить psexec однажды, чтобы принять в первый раз EULA или добавить -accepteula.
  4. Y Ваша команда.

runas не позволяет Вам запускаться как локальная система, вот почему использовать PsTools для связанных с процессом задач.
Запуск Запланированной задачи или Сервиса походит на слишком большое обходного решения для меня...


Например, ответ Patrick может просто быть переписан как:

timeout /t 120 ; psexec -i -s calc.exe
7
ответ дан 07.12.2019, 14:33

Это запускает calc.exe через 2 минуты. Изменитесь

set /A START_MIN=%%j + 2

строка для изменения временного интервала.

for /f "delims=:. tokens=1,2" %%i in ("%time%") do (
set /A START_HOUR=%%i
set /A START_MIN=%%j + 2
)

IF %START_MIN% GEQ 60 (
call :AdjustStartTime
)

IF %START_MIN% LSS 10 SET START_MIN=0%START_MIN%

SCHTASKS /Create /SC ONCE /TN "My Scheduled Task Name" /RU "" /TR "C:\Windows\System32\Calc.exe" /ST %START_HOUR%:%START_MIN%

:AdjustStartTime
SET /A START_HOUR=%START_HOUR% + 1
SET /A START_MIN=%START_MIN% - 60
GOTO:EOF
3
ответ дан 07.12.2019, 14:33

Если Вы не хотите использовать at, быстрый путь состоит в том, чтобы просто спать перед Вашей основной программой.

sleep 10 ; mycommand

Или помещенный это в сценарий.

1
ответ дан 07.12.2019, 14:33

Теги

Похожие вопросы