Unix系では、定期的にプログラムを実行する際に、当然のように使われている「crontab」コマンドにあたるものが、Windows だと「at」コマンドであった。少なくとも Window2000 までは。それ以降は、GUIのツールが出たり、「schtasks」コマンドというものが用意されたり(でも、やっぱり crontab は無い)と、実に、これがいろいろとややこしいのである。
http://www.atmarkit.co.jp/fwin2k/win2ktips/582schtasks/schtasks.html
おおまかに流れを書くと
・WindowsNT : 「at」コマンド(欠点:日付指定までは出来ない)
・Windows2000 : コントロールパネルに「タスク スケジューラ」が登場(atコマンドと互換性なし)
・WindowsXP以降 : 「schtasks」コマンドが登場(atコマンドと統合された)
となるらしい(実はこれに
IE4 とか、SQL Server とか、他にも似たようなツールがあり、いろいろ絡んでたりする)
で、Windows2000 のところに書いた「タスクスケジューラ」は、GUI のツールだが、これを使うと、それまで at コマンドで設定されていたものが、at コマンドで扱えなくなったり、at コマンドを使うようなソフトが正常に動作しなくなることがあるらしいので、GUI のツールは使わずに、at コマンドを使うべきのようである。
で、WindowsXP や Windows Server 2003 になると、atコマンドから機能向上した「schtasks」コマンドが用意され、タスクスケジューラと atコマンドの統合がなされたようである。
つまり、結論から言えば、XP以降は、at コマンドは使わずに、schtasks コマンドを使うべきということになる。
で、XP以前については、先に書いたような理由から、at コマンドを使うべきのようである。
ちなみに、UNIX にも、atコマンドは存在し、at を使うべきか、crontabを使うべきか、その使い分けが、正直私も分かっていなかったのだが(結局、何も考えずに crontab で事足りていたのでそちらを使っていた)、at を動かすためのソフト(atd デーモン)のマニュアルに、こう書かれているらしい
バグ
atd の機能は cron(1) へ統合されるべきである。
これで、悩まなくてすむ(笑)