how to get yesterday's date in a batch file

前端 未结 4 1486
时光取名叫无心
时光取名叫无心 2020-11-30 11:58

I know how to get today\'s date in Windows 7. here is the command that I am using:

%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%

But I want to get yes

4条回答
  •  爱一瞬间的悲伤
    2020-11-30 12:25

    Found a script that will work to ensure you get the previous day even if the year or month changes Dos Yesterday Batch.

    @echo off
    
    set yyyy=
    
    set $tok=1-3
    for /f "tokens=1 delims=.:/-, " %%u in ('date /t') do set $d1=%%u
    if "%$d1:~0,1%" GTR "9" set $tok=2-4
    for /f "tokens=%$tok% delims=.:/-, " %%u in ('date /t') do (
    for /f "skip=1 tokens=2-4 delims=/-,()." %%x in ('echo.^|date') do (
    set %%x=%%u
    set %%y=%%v
    set %%z=%%w
    set $d1=
    set $tok=))
    
    if "%yyyy%"=="" set yyyy=%yy%
    if /I %yyyy% LSS 100 set /A yyyy=2000 + 1%yyyy% - 100
    
    set CurDate=%mm%/%dd%/%yyyy%
    set dayCnt=%1
    
    if "%dayCnt%"=="" set dayCnt=1
    
    REM Substract your days here
    set /A dd=1%dd% - 100 - %dayCnt%
    set /A mm=1%mm% - 100
    
    :CHKDAY
    if /I %dd% GTR 0 goto DONE
    set /A mm=%mm% - 1
    if /I %mm% GTR 0 goto ADJUSTDAY
    set /A mm=12
    set /A yyyy=%yyyy% - 1
    
    :ADJUSTDAY
    if %mm%==1 goto SET31
    if %mm%==2 goto LEAPCHK
    if %mm%==3 goto SET31
    if %mm%==4 goto SET30
    if %mm%==5 goto SET31
    if %mm%==6 goto SET30
    if %mm%==7 goto SET31
    if %mm%==8 goto SET31
    if %mm%==9 goto SET30
    if %mm%==10 goto SET31
    if %mm%==11 goto SET30
    REM ** Month 12 falls through
    
    :SET31
    set /A dd=31 + %dd%
    goto CHKDAY
    
    :SET30
    set /A dd=30 + %dd%
    goto CHKDAY
    
    :LEAPCHK
    set /A tt=%yyyy% %% 4
    if not %tt%==0 goto SET28
    set /A tt=%yyyy% %% 100
    if not %tt%==0 goto SET29
    set /A tt=%yyyy% %% 400
    if %tt%==0 goto SET29
    
    :SET28
    set /A dd=28 + %dd%
    goto CHKDAY
    
    :SET29
    set /A dd=29 + %dd%
    goto CHKDAY
    
    :DONE
    if /I %mm% LSS 10 set mm=0%mm%
    if /I %dd% LSS 10 set dd=0%dd%
    
    REM Set IIS and AWS date variables
    set IISDT=%yyyy:~2,2%%mm%%dd%
    set AWSDT=%yyyy%-%mm%-%dd%
    

提交回复
热议问题