at コマンドは、指定した日時にコマンドとプログラムがコンピュータで実行されるようにスケジュールします。at コマンドを使うには、Schedule サービスを実行中でなければなりません。 at [\\コンピュータ名] [id] [/delete [/yes]] at [\\コンピュータ名] 時刻 [/interactive] [/every:日付[,...] | /next:日付[,...]] "コマンド" パラメータ なし パラメータを指定せずに at を使うと、スケジュールされているコマンドを一覧表示します。 \\コンピュータ名 リモート コンピュータを指定します。このパラメータを省略すると、ローカル コンピュータでコマンドをスケジュールします。 id スケジュールされたコマンドに割り当てられた識別番号です。 /delete スケジュールされたコマンドを取り消します。id を省略すると、コンピュータ上でスケジュールされているコマンドをすべて取り消します。 /yes スケジュールされたイベントを削除するときに、システムからのすべての問い合わせに [yes] と応答させます。 時刻 コマンドが実行される時刻を指定します。24 時間制 (00:00 [午前 0 時] から 23:59) で hh:mm として時刻を表します。 /interactive ジョブの実行中、ジョブはログオンしているユーザーのデスクトップとの対話を許可します。 /every:日付[,...] 指定した曜日または日付 (たとえば、毎週火曜日、または毎月 3 日) ごとにコマンドを実行します。日付は、1 つ以上の曜日 (M、T、W、Th、F、S、Su)、あるいは 1 つ以上の日付 (1 から 31 の数値を使います) として指定します。複数の日付エントリはカンマで区切ります。日付を省略すると、その月の今日の日付を想定します。 /next:日付[,...] 指定したコマンドを、次の日付 (たとえば、次の火曜日) で実行します。日付は、1 つ以上の曜日 (M、T、W、Th、F、S、Su)、あるいは 1 つ以上の日付 (1 から 31 の数値を使います) として指定します。複数の日付エントリはカンマで区切ります。日付を省略すると、その月の今日の日付を想定します。 "コマンド" 実行する Windows NT コマンド、プログラム (.EXE または .COM)、あるいはバッチ ファイル (.BAT または .CMD ファイル) です。コマンドに引数としてパスを指定する必要があれば、絶対パス、つまり、ドライブ名で始まるパス名全体を使います。コマンドがリモート コンピュータ上にある場合は、リモート ドライブ名ではなく、サーバーと共有名を指定します。コマンド ラインで使うか、バッチ ファイルで使うかに関係なく、実行するコマンドの前後を二重引用符で囲まなければなりません。コマンドと at の両方に使われるスイッチをコマンドに指定する場合は、コマンドを二重引用符で囲んでください。コマンドが実行可能 (.EXE) ファイルでない場合は、そのコマンドの前に cmd /c を付けなければなりません (たとえば、cmd /c dir > c:\test.out)。 At--注 at コマンドを使うには、ローカル Administrators グループのメンバーでなければなりません。また、at コマンドは、コマンドの実行前にコマンド インタプリタ cmd を自動的には読み込みません。実行可能 (.EXE) ファイルでないものを実行する場合には、コマンドの実行時に CMD.EXE を明示的に読み込まなければなりません (たとえば、cmd /c dir > c:\test.out)。 スケジュールされているコマンドを表示する at コマンドには 2 つの表示があります。オプションを付けずに at を使うと、次のように表示されます。 ステータス ID 日付 時刻 コマンド ライン ------------------------------------------------- 0 Each F 04:30PM net send group leads status due 2 Each M 12:00AM chkstor > check.fil 3 Each F 11:59PM backup2.bat コマンドの識別番号を指定すると、次のように単一エントリに関する情報が表示されます。 タスク ID: 0 ステータス: OK スケジュール: Each F 時刻: 04:30PM コマンド: net send group leads status due at を使ってコマンド (特にオプション変数が付いているコマンド) をスケジュールすることが終わったら、オプションを付けずに at と入力して、コマンドを正しく入力したかどうかを確認します。"コマンド ライン" 欄の情報が正確でなければ、そのコマンドを削除して再び入力します。それでも間違っている場合は、オプション変数の数を減らしてコマンドを入力しなおします。 結果を表示する at コマンドでスケジュールされたコマンドはバックグラウンド プロセスとして実行されるので、コンピュータの画面に出力結果は表示されません。出力をファイルにリダイレクトするには、リダイレクト文字 (>) を使います。出力をファイルにリダイレクトする場合は、スケジュールするコマンドの名前を二重引用符 (") で囲みます。実行中のコマンドの現在のディレクトリは、%systemroot% ディレクトリです。 システム時刻を変更する at を使ってコマンドが実行されるようにスケジュールした後に、コンピュータのシステム時刻を変更する場合は、オプションを付けずに at と入力して、at スケジューラを改訂後の時刻と同期させます。 コマンドを格納する スケジュールされたコマンドはレジストリに格納されるので、Schedule サービスを再び開始しなければならない場合にも、スケジュールされたタスクは失われません。 ネットワーク ドライブに接続する ネットワークにアクセスするスケジュールされたジョブでは、ユーザーが作成してリダイレクトしたドライブを使用すべきではありません。Schedule サービスは、それらのドライブにアクセスできない可能性があり、またスケジュールされたジョブの実行時に別のユーザーがログオンしていると、それらのドライブが利用できない可能性があります。代わりに、スケジュールされたジョブでは、UNC パスを使用してください。次に例を示します。 at 1:00pm my_backup \\server\share 次のようには指定しないでください。 at 1:00pm my_backup x: x: はユーザーが作成した接続ドライブ (リダイレクトされたドライブ) ドライブ名を使って共有ディレクトリに接続する at コマンドをスケジュールする場合は、at コマンドを含めて、使用した後にドライブを切断してください。ドライブが切断されなければ、そのドライブ名をコマンド プロンプトから利用または表示できません。 At--例 サーバー MARKETING でスケジュールされたコマンドの一覧を表示するには、次のように入力します。 at \\marketing サーバー CORP で識別番号 3 のコマンドに関する詳細情報を表示するには、次のように入力します。 at \\corp 3 net share コマンドが CORP サーバーで午前 8:00 に実行されるようにスケジュールして、一覧をサーバー MAINTENANCE、共有ディレクトリ REPORTS、およびファイル CORP.TXT にリダイレクトするには、次のように入力します。 at \\corp 08:00 "cmd /c net share reports=d:\marketing\reports >> \\maintenance\reports\corp.txt" MARKETING サーバーのハード ディスクを 5 日目ごとの深夜 12:00 にテープ ドライブにバックアップするには、バックアップ コマンドが入っているバッチ ファイル (ARCHIVE.CMD) を作成します。その後で、次のように入力して、バッチ ファイルが実行されるようにスケジュールします。 at \\marketing 00:00 /every:5,10,15,20,25,30 archive 現在のサーバーでスケジュールされているコマンドをすべて取り消すには、次のように入力して at スケジュール情報を消去します。 at /delete