Я думаю, что это сработает ... тест для дня недели, а затем, будет ли дата больше 24 (или 23 для месяцев с 30 днями, или 21 для февраля ... быть 22 в високосные годы, так что вы также хотите добавить этот тест):
@echo off
set Day=%date:~0,3%
IF "%Day%"=="Mon" set Monday=1
set today=%date:~7,2%
set lim=24
if "%date:~4,2%"=="02" set lim=21
if "%date:~4,2%"=="04" set lim=23
if "%date:~4,2%"=="06" set lim=23
if "%date:~4,2%"=="09" set lim=23
if "%date:~4,2%"=="11" set lim=23
if "%today%" GTR "%lim%" set Last=1
if "%Monday%"==1 goto itsMonday
:itsMonday
if "%Last%"=="1" echo last monday of the month
:end