特定の日時にコンピューター上で実行されるようにコマンドとプログラムのスケジュールを設定します。 at は、Schedule サービスが実行されている場合にのみ使用できます。 パラメーターを指定せずに使用すると、at はスケジュールされたコマンドを一覧表示します。 このコマンドを実行するには、ローカルの Administrators グループのメンバーである必要があります。
構文
at [\computername] [[id] [/delete] | /delete [/yes]]
at [\computername] <time> [/interactive] [/every:date[,...] | /next:date[,...]] <command>
パラメーター
パラメーター | 説明 |
---|---|
\<computername\> |
リモート コンピューターを指定します。 このパラメーターを省略すると、at はローカル コンピューター上のコマンドとプログラムをスケジュールします。 |
<id> |
スケジュールされたコマンドに割り当てられた識別番号を指定します。 |
/削除 | スケジュールされたコマンドをキャンセルします。 ID を省略すると、コンピューター上のスケジュールされたすべてのコマンドが取り消されます。 |
/はい | スケジュールされたイベントを削除するときに、システムからのすべてのクエリに対して [はい] を回答します。 |
<time> |
コマンドを実行する時刻を指定します。 時刻は 24 時間表記 (つまり、00:00 (午前 0 時) から 23:59) で時間:分で表されます。 |
対話型 | Command の実行時にログオンしたユーザーのデスクトップとの対話を command に許可します。 |
毎: | 指定したすべての曜日または月の日付 (たとえば、毎週木曜日、毎月 3 日目など) に対して command を実行します。 |
<date> |
コマンドを実行する日付を指定します。 1 つまたは複数の曜日を指定 (つまり、「M」、「T」、「W」、「Th」、「F」、「S」、「Su」を入力) したり、1 つまたは複数の月の日付を指定 (つまり 1 から 31 を入力) したりできます。 複数の日付エントリをコンマで区切ります。 "日付" を省略した場合、at は月の現在の日付を使用します。 |
次に: | 次の日の発生時に command を実行します (次の木曜日など)。 |
<command> |
実行する Windows コマンド、プログラム (つまり、.exe または .com ファイル)、またはバッチ プログラム (つまり、.bat または .cmd ファイル) を指定します。 コマンドが引数としてパスを必要とする場合は、絶対パス (つまり、ドライブ文字で始まるパス全体) を使用します。 コマンドがリモート コンピューター上にある場合は、リモート ドライブ文字ではなく、サーバーと共有名に汎用名前付け規則 (UNC) 表記を指定します。 |
$ | コマンド プロンプトにヘルプを表示します。 |
解説
このコマンドでは、コマンドを実行する前に cmd.exe が自動的に読み込まれません。 実行可能 (.exe) ファイルを実行していない場合は、次のように、コマンドの先頭に cmd.exe を明示的に読み込む必要があります。
cmd /c dir > c:\test.out
コマンド ライン オプションを指定せずにこのコマンドを使用すると、スケジュールされたタスクは次のように書式設定されたテーブルに表示されます。
Status ID Day time Command Line OK 1 Each F 4:30 PM net send group leads status due OK 2 Each M 12:00 AM chkstor > check.file OK 3 Each F 11:59 PM backup2.bat
このコマンドに識別番号 (ID) を含めると、1 つのエントリの情報だけが次のような形式で表示されます。
Task ID: 1 Status: OK Schedule: Each F Time of Day: 4:30 PM Command: net send group leads status due
コマンドのスケジュールを設定した後、コマンド ライン オプションを含むコマンドを実行する場合は、コマンド ライン オプションを指定せずに「at」と入力して、コマンドの構文が正しいことを確認します。 Command Line 列の情報が間違っている場合は、コマンドを削除して再入力します。 それでも間違っている場合は、コマンド ライン オプションを少なくしてコマンドを再入力します。
at でスケジュールされたコマンドはバックグラウンド プロセスとして実行されます。 出力はコンピューター画面に表示されません。 ファイルに出力をリダイレクトするには、リダイレクト シンボル
>
を使用します。 ファイルに出力をリダイレクトする場合は、^
をコマンド ラインで使う場合でもバッチ ファイルで使う場合でも、リダイレクト シンボルの前にエスケープ シンボル を使用する必要があります。 たとえば、output.txt に出力をリダイレクトするには、次のように入力します。at 14:45 c:\test.bat ^>c:\output.txt
実行中のコマンドの現在のディレクトリは、systemroot フォルダーです。
実行するコマンドのスケジュールを設定した後にシステム時刻を変更する場合は、コマンド ライン オプションを指定せずに「at」と入力して、at スケジューラと変更後のシステム時刻を同期します。
スケジュールされたコマンドはレジストリに格納されます。 その結果、Schedule サービスを再起動した場合に、スケジュールされたタスクが失われることはありません。
ネットワークにアクセスするスケジュールされたジョブには、リダイレクトされたドライブを使用しないでください。 Schedule サービスは、リダイレクトされたドライブにアクセスできない可能性があります。または、スケジュールされたタスクの実行時に別のユーザーがログオンしている場合は、リダイレクトされたドライブが存在しない可能性があります。 代わりに、スケジュールされたジョブに UNC パスを使用します。 次に例を示します。
at 1:00pm my_backup \\server\share
次の構文は使用しないでください。x: はユーザーによって作成された接続です。
at 1:00pm my_backup x:
ドライブ文字を使用して共有ディレクトリに接続する at コマンドをスケジュールする場合は、ドライブの使用が終了したときにドライブを切断する at コマンドを追加します。 ドライブが切断されていない場合、割り当てられたドライブ文字はコマンド プロンプトで使用できません。
既定では、このコマンドを使用してスケジュールされたタスクは、72 時間後に停止します。 レジストリを変更して、この既定値を変更できます。
レジストリを変更するには
注意事項
レジストリを正しく編集しないと、システムが正常に動作しなくなる場合があります。 レジストリを変更する前に、コンピューター上の重要なデータのバックアップを作成する必要があります。
レジストリ エディター (regedit.exe) を起動します。
レジストリで次のキーを見つけてクリックします。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Schedule
[編集] メニューの [値の追加] をクリックし、次のレジストリ値を追加します。
値の名前。 タスクマックスアワーズ
データ型。 reg_DWOrd
基数。 Decimal (10 進数型)
値のデータ: 0。 値のデータ フィールドの値が 0 の場合は、制限がないことを示し、停止することはありません。 1 から 99 の値は、時間数を示します。
[スケジュールされたタスク] フォルダーを使用して、このコマンドを使用して作成されたタスクの設定を表示または変更できます。 このコマンドを使用してタスクをスケジュールすると、タスクが [スケジュールされたタスク] フォルダーに、at3478 のような名前で表示されます。 ただし、[スケジュールされたタスク] フォルダーを使用してタスクを変更すると、通常のスケジュールされたタスクにアップグレードされます。 このタスクは at コマンドから見えなくなり、at アカウントの設定が適用されなくなります。 このタスクのユーザー アカウントとパスワードを明示的に入力する必要があります。
例
Marketing サーバーでスケジュールされているコマンドの一覧を表示するには、次のように入力します。
at \\marketing
Corp サーバーの識別番号が 3 のコマンドの詳細を確認するには、次のように入力します。
at \\corp 3
Corp サーバーで net share コマンドを午前 8:00 に実行するようにスケジュールし、この一覧を Maintenance サーバーにリダイレクトするには、Reports 共有ディレクトリと Corp.txt ファイルに次のように入力します。
at \\corp 08:00 cmd /c net share reports=d:\marketing\reports >> \\maintenance\reports\corp.txt
Marketing サーバーのハード ドライブを 5 日おきに午前 0 時にテープ ドライブにバックアップするには、backup コマンドを含む Archive.cmd という名前のバッチ プログラムを作成し、バッチ プログラムの実行をスケジュールします。次のように入力します。
at \\marketing 00:00 /every:5,10,15,20,25,30 archive
現在のサーバーでスケジュールされているすべてのコマンドを取り消すには、at スケジュール情報を次のように削除します。
at /delete
実行可能 (.exe) ファイルではないコマンドを実行するには、コマンドの前に cmd/c を使用して次のように cmd.exe を読み込みます。
cmd /c dir > c:\test.out
関連リンク
schtasks。 別のコマンド ライン スケジューリング ツール。