::判断当前日期的前一天
::首先直接把天数减1天::如果出来的是0天就把月减1天,天数是当月的最后一天。::如果出来的是0月就把年减1年,月数是当年的最后一月。@echo off&setlocal enabledelayedexpansionset yyyy=%date:~0,4%set mm=%date:~5,2%set dd=%date:~8,2%set /a od=!dd!-1if !od!==0 call :dd0if !mm!==0 call :mm0set yyyymmdd=!yyyy!年!mm!月!od!日echo 昨天是:!yyyymmdd!pause:dd0set /a mm=!mm!-1for %%a in (1 3 5 7 8 10 12)do set %%add=31set /a pddd=!yyyy!*10/4set pd2d=!pddd:~-1,1!set 2dd=28if !pd2d!==0 set 2dd=29for %%b in (4 6 9 11)do set %%bdd=30set od=!%mm%dd!goto :eof:mm0set /a yyyy=!yyyy!-1set mm=12 && set od=31goto :eof
简化版 判断上个月的一号是哪天
::判断当前日期的前一个月~到两个月前::首先直接把月数减1::如果出来的是0月就把年减1年。::设置日为1。 @echo off&setlocal enabledelayedexpansionset yyyy=%date:~0,4%set mm=%date:~5,2%set dd=%date:~8,2%set /a mx=!mm!-1if !mx!==0 call :mm0set /a dx=01set yyyymmdd=!yyyy!年!mx!月!dx!日echo 指定是:!yyyymmdd!pause:mm0set /a yyyy=!yyyy!-1set mm=12 && set dd=01goto :eof