Planen Sie einen Job über die Windows-Befehlszeile?

Unter Linux gibt es cron job und bei job. Gibt es eine Möglichkeit, einen Job über die Befehlszeile unter Windows zu planen?

Die Taskplaner GUI ist nicht das, wonach ich suche. Ich muss ein Skript ändern, um ein Ereignis unter einer bestimmten Bedingung zu planen... es muss also eine Möglichkeit geben, dies über die Befehlszeile aufzurufen.

Author: fixer1234, 2009-07-19

3 answers

Windows hat auch einen "at job". Obwohl die Syntax etwas anders ist.

C:\Documents and Settings\Administrator>at /?
The AT command schedules commands and programs to run on a computer at
a specified time and date. The Schedule service must be running to use
the AT command.

AT [\\computername] [ [id] [/DELETE] | /DELETE [/YES]]
AT [\\computername] time [/INTERACTIVE]
    [ /EVERY:date[,...] | /NEXT:date[,...]] "command"

\\computername     Specifies a remote computer. Commands are scheduled on the
                   local computer if this parameter is omitted.
id                 Is an identification number assigned to a scheduled
                   command.
/delete            Cancels a scheduled command. If id is omitted, all the
                   scheduled commands on the computer are canceled.
/yes               Used with cancel all jobs command when no further
                   confirmation is desired.
time               Specifies the time when command is to run.
/interactive       Allows the job to interact with the desktop of the user
                   who is logged on at the time the job runs.
/every:date[,...]  Runs the command on each specified day(s) of the week or
                   month. If date is omitted, the current day of the month
                   is assumed.
/next:date[,...]   Runs the specified command on the next occurrence of the
                   day (for example, next Thursday).  If date is omitted, the
                   current day of the month is assumed.
"command"          Is the Windows NT command, or batch program to be run.

Beispiel:

at 9:00 /interactive notepad.exe

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

 13
Author: John T,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-02-23 14:45:06

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

Schtasks plant die Ausführung von Befehlen und Programmen periodisch oder zu einer bestimmten Zeit. Fügt Aufgaben hinzu und entfernt sie aus dem planen, startet und stoppt Aufgaben auf nachfrage und Anzeigen und Änderungen geplante Aufgaben.

Syntax:

schtasks /create /tn TaskName /tr TaskRun /sc schedule [/mo modifier]
         [/d day] [/m month[,month...] [/i IdleTime] [/st StartTime] 
         [/sd StartDate] [/ed EndDate] [/s computer [/u 
         [domain\]user /p password]] 
         [/ru {[Domain\]User | "System"} [/rp Password]] /? 
 15
Author: splattne,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2009-07-20 07:03:44

Schreiben Sie ein Windows-Shell-Skript, um es mit einem Sleep-Programm für Verzögerung zu tun:

@echo off

:loop
someprogram args
sleep 900
if somecondition goto loop

Führen Sie es in einem eigenen Shell-Fenster aus. Konfigurieren Sie cmd ein.exe zum Ausführen beim Einschalten mit diesem Skript. sleep schlä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;
}
 1
Author: Henrik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-04-26 07:15:11