web-dev-qa-db-ja.com

Windowsタスクを毎分スケジュールする

スクリプトを毎分実行するようにWindowsタスクをスケジュールする必要があります。ほとんどの場合、スクリプトは何も実行する必要がなく、すぐに存在します。 Whenスクリプトは何かを実行する必要があるので、ジョブをできるだけ早く、つまり1分の間隔で開始したいと思います。

現在、WindowsスケジューラのUIは近年非常に混乱しているため、Windows 2008 R2で毎分(または5分)にタスクを実行するための最良の方法は何なのかわかりません。

これは、Windowsで毎分タスクをスケジュールする最良の方法ですか?信頼できますか?マシンを再起動した直後に開始されますか、それとも午後12時にのみ再開されますか?非常にポータブルである必要があるため、このためのカスタムサービスアプリケーションを使用/作成できないことに注意してください。

13
Dennis G.

はい、このサービスは再起動後に実行されます。タスクスケジューラサービスのトランザクションログで確認できます。

 Systemroot\SchedLgU.txt 
 
(SystemrootはWindowsインストールフォルダーです)

それが正しく動作していない場合(XPの場合、2008と同等のものは不明):

    
コントロールパネル->管理ツール->サービス->タスクスケジューラ
 
自動に設定します。 

2008のドキュメントはこちらXPのドキュメントはこちら

タスクのスケジュールは指定された時間に開始され、その後、繰り返しパラメーターに基づいて実行されます。開始時刻は「タスクインストール」時刻と見なすことができ、繰り返しパラメーターの一部ではありません(タイマーオフセットを除く)。それが理にかなっていると思います!

4
Andy

これと同じ要件がありました。 Server 2008では、実際にRepeat task every:ドロップダウンを変更できます。デフォルトでは、最小値は "5分"ですが、単に "1分"そこに。 トリガータブを見て、 "... 00:01:00ごとに繰り返す..." "10秒"と入力してみると、1分より長い値を選択するように求めるエラーが表示されます。

18
coryvb123

コマンドラインの "schtasks"を使用して、毎分1回繰り返すようにタスクをスケジュールすることができます。コードの例は次のとおりです。

schtasks/create/sc min/mo 1/tn "タスク名"/tr c:\ temp\filename.exe

タスクはWindows 2008 R2 GUIに表示され、1分に1回実行されます。タスクは、コマンドラインの "schtasks"ユーティリティを使用して作成および変更する必要があります。

残念ながら、MicrosoftはWindows 2008 R2タスクスケジューラを愚かに設計し、Windows 2003のタスクスケジューラにある柔軟な構成を削除して、間隔の限られたいくつかの選択肢を優先しました。

ダベファン

8
davephan