Planen Sie einen Job von der Windows-Befehlszeile aus?

16897
fixer1234

Unter Linux gibt es Cron Job und bei Job. Gibt es eine Möglichkeit, einen Job über die Befehlszeile unter Windows einzuplanen?

Die Taskplaner- Benutzeroberfläche ist nicht das, was ich suche. Ich muss ein Skript ändern, um ein Ereignis unter einer bestimmten Bedingung zu planen. Daher muss es eine Möglichkeit geben, dieses Ereignis von der Befehlszeile aus aufzurufen.

13

3 Antworten auf die Frage

14
splattne

Verwenden Sie den Befehl schtasks . Es hat mehr Optionen als der atBefehl und einige nette wie /mo LASTDAYfür den letzten Tag des Monats:

schtasks plant, dass Befehle und Programme periodisch oder zu einem bestimmten Zeitpunkt ausgeführt werden. Fügt Aufgaben hinzu und entfernt sie aus dem Zeitplan, startet und stoppt Aufgaben nach Bedarf und zeigt geplante Aufgaben an und ändert sie.

Syntax:

schtasks / create / tn TaskName / tr TaskRun / sc Zeitplan [/ mo-Modifizierer] [/ d Tag] [/ m Monat [, Monat ...] [/ i IdleTime] [/ st StartTime]  [/ sd StartDate] [/ ed EndDate] [/ s Computer [/ u  [Domäne \] Benutzer / p Kennwort]]  [/ ru {[Domain \] Benutzer | "System"} [/ rp Passwort]] /? 
12
John T

Windows hat auch ein "at job". Die Syntax ist jedoch etwas anders.

C: \ Dokumente und Einstellungen \ Administrator> um /? Der AT-Befehl plant Befehle und Programme, die auf einem Computer ausgeführt werden sollen eine bestimmte Zeit und ein Datum. Der Zeitplandienst muss ausgeführt werden der AT-Befehl.  AT [\\ Computername] [[ID] [/ DELETE] | / LÖSCHEN [/ JA]] AT [\\ Computername] Zeit [/ INTERACTIVE] [/ EVERY: Datum [, ...] | / NEXT: Datum [, ...]] "Befehl"  \\ Computername Gibt einen Remote-Computer an. Befehle sind auf der lokaler Computer, wenn dieser Parameter nicht angegeben wird. id Ist eine Identifikationsnummer, die einem Termin zugeordnet ist Befehl. / delete Bricht einen geplanten Befehl ab. Wenn id weggelassen wird, werden alle Geplante Befehle auf dem Computer werden abgebrochen. / yes Wird mit dem Befehl zum Abbrechen aller Jobs verwendet, wenn nicht mehr Bestätigung ist erwünscht. time Gibt die Uhrzeit an, zu der der Befehl ausgeführt werden soll. / interactive Ermöglicht dem Job die Interaktion mit dem Desktop des Benutzers wer zum Zeitpunkt der Jobausführung angemeldet ist. / alle: Datum [, ...] Führt den Befehl an jedem angegebenen Wochentag oder aus Monat. Wenn das Datum nicht angegeben ist, wird der aktuelle Tag des Monats angegeben wird angenommen. / next: date [, ...] Führt den angegebenen Befehl beim nächsten Auftreten des Befehls aus Tag (zum Beispiel nächsten Donnerstag). Wenn das Datum nicht angegeben ist, wird der aktueller Tag des Monats wird angenommen. "Befehl" Soll der Windows NT-Befehl oder das Stapelverarbeitungsprogramm ausgeführt werden.

Beispiel:

at 9:00 /interactive notepad.exe 

Dadurch öffnet sich Notepad um 9:00 Uhr morgens interaktiv für den Benutzer.

"at" ist während unseres Gesprächs veraltet. "schtasks" ist jetzt der Weg. Vielleicht könnten Sie die richtige Antwort ändern. Marius vor 9 Jahren 3
1
Henrik

Schreiben Sie ein Windows-Shell-Skript, um es für die Verzögerung mit einem Schlafprogramm auszuführen:

@echo off  :loop someprogram args sleep 900 if somecondition goto loop 

Führen Sie es in einem eigenen Shell-Fenster aus. Konfigurieren Sie cmd.exe so, dass es mit diesem Skript beim Einschalten ausgeführt wird. sleepschläft für einige Sekunden:

#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; }