シンプルな要件ですが、Windows サーバーでタスクスケジューラを設定し、指定された時間帯(9 時から 15 時)に特定のプログラムを実行する必要があります。ただし、Windows のタスクスケジューラは cron とは異なり、指定した時間帯の設定はできず、1 時間ごとの起動しか設定できません。
方法 1. Bootstrap プログラムを起動し、現在の時間に基づいてタスクの実行を継続するかどうかを判断します。
現在の時間の文字列を取得します。
SET curr_time=%TIME:~0,-5%
SET curr_time_str=%curr_time::=%
時間を取得した後、条件判断を行い、対応するコードを実行するかどうかを決定します。
完全なコードは以下の通りです。
@echo off
ECHO "Time Schedule Bootstrap"
SET curr_time=%TIME:~0,-5%
SET curr_time_str=%curr_time::=%
IF %curr_time_str% leq 0900 (GOTO time_cancel) ELSE (
IF %curr_time_str% leq 1500 (GOTO time_exec) ELSE (
GOTO time_cancel
)
)
exit 0
_exec
ECHO "Call CMD.exe"
CMD.exe
exit 0
_cancel
ECHO "Canceled"
exit 10
方法 2. 毎日指定した時間に 1 回起動するように設定しますが、複数回設定する必要があります。ここでは省略します。