web-dev-qa-db-ja.com

Windowsコマンドラインからジョブをスケジュールしますか?

Linuxには cron ジョブと at ジョブがあります。 Windowsのコマンドラインからジョブをスケジュールする方法はありますか?

タスクスケジューラ GUIは私が求めているものではありません。特定の条件でイベントをスケジュールするようにスクリプトを変更する必要があります...したがって、コマンドラインからこれを呼び出す方法が必要です。

15
demetri

Windowsには「仕事中」もあります。構文は少し異なりますが。

C:\ Documents and Settings\Administrator> at /?
ATコマンドは、指定された日時にコンピュータ上で実行されるようにコマンドとプログラムをスケジュールします
。 
 ATコマンド。
 
 AT [\\ computername] [[id] [/ DELETE]を使用するには、Scheduleサービスが実行されている必要があります。 |/DELETE [/ YES]] 
 AT [\\ computername]時間[/INTERACTIVE]
[/EVERY:date [、...] |/NEXT:date [、.. .. ]] "command" 
 
 \\ computernameリモートコンピューターを指定します。このパラメーターを省略した場合、コマンドは
ローカルコンピューターでスケジュールされます。
 idは識別情報ですスケジュールされた
コマンドに割り当てられた番号。
/deleteスケジュールされたコマンドをキャンセルします。idを省略すると、コンピューター上のすべての
スケジュールされたコマンドがキャンセルされます。
 /はいこれ以上
確認が必要ない場合は、[すべてのジョブをキャンセル]コマンドで使用します。
時間コマンドを実行する時刻を指定します。
/interactiveジョブの実行時にログオンしているユーザー
のデスクトップとジョブを対話できるようにします。
/every :date [、...]指定された各曜日または
月にコマンドを実行します。日付を省略すると、その月の現在の日
が想定されます。
/next:date [、...] 
日の次の出現時に、指定されたコマンドを実行します。 (たとえば、来週の木曜日)。日付を省略した場合は、
の現在の日付と見なされます。
 "command"は、Windows NTコマンド、または実行するバッチプログラムです。

例:

at 9:00 /interactive notepad.exe

これにより、 メモ帳 が午前9時にユーザーに対してインタラクティブに開きます。

13
John T

schtasks コマンドを使用します。 atコマンドよりも多くのオプションがあり、月末の/mo LASTDAYのようないくつかの素晴らしいオプションがあります。

schtasksは、コマンドとプログラムを定期的または特定の時間に実行するようにスケジュールします。スケジュールからタスクを追加および削除し、オンデマンドでタスクを開始および停止し、スケジュールされたタスクを表示および変更します。

構文:

 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 {[ドメイン\]ユーザー| "システム"} [/ rpパスワード]] /? 
15
splattne

遅延のためにスリーププログラムを使用して実行する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;
}
1
Henrik