Запланувати завдання з командного рядка Windows?


15

У Linux є робота cron і на роботі. Чи є спосіб запланувати завдання з командного рядка в Windows?

Task Scheduler GUI не те , що я після. Я повинен змінити сценарій для планування події на певну умову ... тому повинен бути спосіб викликати це з командного рядка.

Відповіді:


13

У Windows також є "на роботі". Хоча синтаксис трохи інший.

C: \ Документи та налаштування \ Адміністратор> в /?
Команда AT планує команди та програми, які запускаються на комп'ютері за адресою
вказаний час та дату. Служба "Розклад" повинна працювати
команда AT.

AT [\\ ім'я комп’ютера] [[id] [/ DELETE] | / УДАЛИТИ [/ ТАК]]
В [\\ ім'я комп’ютера] час [/ ІНТЕРАКТИВНО]
    [/ ВСЕ: дата [, ...] | / NEXT: дата [, ...]] "команда"

\\ ім'я комп’ютера Вказує віддалений комп'ютер. Команди заплановані на
                   локальний комп'ютер, якщо цей параметр опущено.
id - ідентифікаційний номер, призначений запланованому
                   командування.
/ delete Скасовує заплановану команду. Якщо ідентифікатор пропущено, усі
                   заплановані команди на комп’ютері скасовуються.
/ так Використовується для скасування всіх завдань, коли більше немає
                   підтвердження бажано.
time Вказує час виконання команди.
/ interactive Дозволяє роботі взаємодіяти з робочим столом користувача
                   який увійшов у систему під час виконання завдання.
/ every: date [, ...] Виконує команду кожного вказаного дня або тижня або
                   місяць. Якщо дата опущена, поточний день місяця
                   передбачається.
/ next: date [, ...] Виконує вказану команду при наступному появі
                   день (наприклад, наступного четверга). Якщо дата пропущена, то
                   поточний день місяця.
"команда" Чи запускається команда Windows NT або пакетна програма.

Приклад:

at 9:00 /interactive notepad.exe

Це призведе до того, що Блокнот буде інтерактивно відкриватися для користувача о 9:00 ранку.


3
"at" застаріло, як ми говоримо. "Щотки" - це шлях, який потрібно пройти зараз. Можливо, ви могли змінити правильну відповідь.
Маріус

15

Використовуйте команду schtasks . Він має більше варіантів, ніж atкоманда, і кілька приємних, як /mo LASTDAYостанній день місяця:

schtasks розкладає команди та програми, які запускаються періодично або в певний час. Додає та видаляє завдання із розкладу, запускає та зупиняє завдання на вимогу та відображає та змінює заплановані завдання.

Синтаксис:

schtasks / create / tn TaskName / tr TaskRun / sc графік [/ mo модифікатор]
         [/ d day] [/ m month [, month ...] [/ i IdleTime] [/ st StartTime] 
         [/ sd StartDate] [/ ed EndDate] [/ s комп'ютер [/ u 
         [домен \] пароль користувача / p]] 
         [/ ru {[Домен \] Користувач | "Система"} [/ rp Пароль]] /?

1

Напишіть сценарій оболонки Windows, щоб це зробити за допомогою програми сну для затримки:

@echo off

:loop
someprogram args
sleep 900
if somecondition goto loop

Запустіть його у власному вікні оболонки. Налаштуйте cmd.exe для запуску живлення за допомогою цього сценарію. sleepспить протягом декількох секунд:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <Windows.h>

int main(int argc, char* argv[])
{
    int n = atoi(argv[1]);

    Sleep(n * 1000);

    return 0;
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.