Zaplanować zadanie z wiersza polecenia systemu Windows?

15

W systemie Linux istnieje cron pracy i przy pracy. Czy istnieje sposób zaplanowania zadania z wiersza poleceń w systemie Windows?

Task Scheduler GUI nie jest to, co ja jestem po. Muszę zmodyfikować skrypt, aby zaplanować zdarzenie pod pewnym warunkiem ... więc musi istnieć sposób na wywołanie tego z wiersza poleceń.

fixer1234
źródło

Odpowiedzi:

13

Windows ma również „w pracy”. Chociaż składnia jest nieco inna.

C: \ Documents and Settings \ Administrator> at /?
Polecenie AT planuje uruchamianie poleceń i programów na komputerze w
określona godzina i data. Aby korzystać z usługi harmonogramu, musi być uruchomiona
polecenie AT.

AT [\\ nazwa_komputera] [[id] [/ DELETE] | / DELETE [/ YES]]
AT [\\ nazwa_komputera] czas [/ INTERACTIVE]
    [/ KAŻDY: data [, ...] | / NEXT: date [, ...]] „command”

\\ nazwa_komputera Określa komputer zdalny. Polecenia są zaplanowane w
                   komputer lokalny, jeśli ten parametr zostanie pominięty.
id To numer identyfikacyjny przypisany do zaplanowanego
                   Komenda.
/ delete Anuluje zaplanowane polecenie. Jeśli identyfikator zostanie pominięty, wszystkie
                   zaplanowane polecenia na komputerze są anulowane.
/ yes Używany z poleceniem anuluj wszystkie zadania, gdy nie ma więcej
                   potwierdzenie jest pożądane.
czas Określa czas uruchomienia polecenia.
/ interactive Umożliwia zadanie interakcji z pulpitem użytkownika
                   kto jest zalogowany w czasie wykonywania zadania.
/ every: date [, ...] Uruchamia polecenie każdego określonego dnia (dni) tygodnia lub
                   miesiąc. Jeśli data zostanie pominięta, bieżący dzień miesiąca
                   zakłada się.
/ next: date [, ...] Uruchamia określone polecenie przy następnym wystąpieniu
                   dzień (na przykład w następny czwartek). Jeśli data zostanie pominięta, symbol
                   przyjęto bieżący dzień miesiąca.
„polecenie” To polecenie systemu Windows NT lub program wsadowy do uruchomienia.

Przykład:

at 9:00 /interactive notepad.exe

Spowoduje to interaktywne otwieranie Notatnika dla użytkownika o 9:00 rano.

John T.
źródło
3
„at” jest przestarzałe, gdy mówimy. „schtasks” to już droga. Może mógłbyś zmienić poprawną odpowiedź.
Marius
15

Użyj polecenia schtasks . Ma więcej opcji niż atpolecenie i kilka fajnych, jak /mo LASTDAYna ostatni dzień miesiąca:

schtasks planuje uruchamianie komend i programów okresowo lub o określonej godzinie. Dodaje i usuwa zadania z harmonogramu, uruchamia i zatrzymuje zadania na żądanie oraz wyświetla i zmienia zaplanowane zadania.

Składnia:

schtasks / create / tn TaskName / tr TaskRun / sc schedule [/ mo modyfikator]
         [/ d dzień] [/ m miesiąc [, miesiąc ...] [/ i IdleTime] [/ st StartTime] 
         [/ sd StartDate] [/ ed EndDate] [/ s komputer [/ u 
         [domena \] hasło użytkownika / p]] 
         [/ ru {[Domena \] Użytkownik | „System”} [/ hasło rp]] /?
splattne
źródło
1

Napisz skrypt powłoki systemu Windows, aby to zrobić za pomocą programu uśpienia w celu opóźnienia:

@echo off

:loop
someprogram args
sleep 900
if somecondition goto loop

Uruchom go we własnym oknie powłoki. Skonfiguruj cmd.exe, aby uruchamiał się przy użyciu tego skryptu. sleepśpi przez kilka sekund:

#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;
}
Henrik
źródło