環境
- Windows Server 2012
問題
以下のようなバッチファイルを、タスクスケジューラで「毎日」実行するように設定しました。
しかし、実際には毎日でなく3日ごとに実行されていました(batファイルのログで確認)。
REM 何らかのコマンドを実行
execute
REM Enterキーが押されるまで処理を一時停止
REM(処理が無事終了したことを確認するため、一時停止してコマンドプロンプトが閉じないようにする)
pause
「3日」はどこで設定されているか
「3日」という値は、「設定タブ->タスクを停止するまでの時間」に設定されていました。
この値を「1日」に変更したら、毎日実行するようになりました。
毎日実行されない原因
「設定タブ」の「タスクが既に実行中の場合に適用される規則」が「新しいインスタンスを開始しない」になっていました(上図を参照)。
batファイルではpause
コマンドを使っているため、Enterキーを押すまでタスクは終了されません。
そのため「新しいインスタンス」が生成されず、毎日タスクが実行されませんでした。
解決方法
以下のいずれかの方法で解決できるでしょう。
- 「設定タブ→タスクを停止するまでの時間」を「1日」にする。
-
pause
コマンドを取り除いて、処理を止めないようにする - 「設定タブ→タスクが既に実行中の場合に適用される規則」を、「新しいインスタンスを並列で実行」または「既存のインスタンスを停止」に設定する。