DOSコマンドで指定曜日に処理を行う

やはり、自分の探し方が悪いのか情報が見あたらなかったので情報を共有します。
なお、DOSの%DATE%変数の代入値は「地域と言語のオプション」の設定により変わります。
下の例では、“短い形式”が“yyyy/MM/dd”となっている事を仮定している点に注意してください。


@ECHO OFF

SET YEAR=%DATE:~0,4%
SET MONTH=%DATE:~5,2%
SET DAY=%DATE:~8,2%

if %MONTH% == 1 (
SET /A YEAR=%YEAR% - 1
SET /A MONTH=%MONTH% + 12
)
if %MONTH% == 2 (
SET /A YEAR=%YEAR% - 1
SET /A MONTH=%MONTH% + 12
)
SET /A WEEK=(%YEAR% / 4 - %YEAR% / 100 + %YEAR% / 400 + (13 * %MONTH% + 8) / 5 + %DAY%) %% 7

REM 日曜日:0...土曜日:7
if %WEEK% == 0 (
GOTO nichiyoubi
)
GOTO end

:nichiyoubi
ECHO 日曜日です

:end
ECHO おしまい