是的,可以使用批处理脚本CMD获取2天前的日期。以下是一个简单的方法:
@echo off
setlocal
REM 获取当前日期
for /f "tokens=1-3 delims=/-" %%a in ("%date%") do (
set "day=%%a"
set "month=%%b"
set "year=%%c"
)
REM 将当前日期转换为数字
set /a "day=10%day% - 100"
set /a "month=10%month% - 100"
set /a "year=10000%year% - 10000"
REM 计算2天前的日期
set /a "day-=2"
if %day% lss 1 (
set /a "month-=1"
if %month% lss 1 (
set /a "year-=1"
set "month=12"
)
if %month% equ 2 (
if %year% equ 0 (
set /a "leap=1"
) else if %year% equ 100 (
set /a "leap=0"
) else if %year% equ 200 (
set /a "leap=1"
) else if %year% equ 300 (
set /a "leap=0"
) else if %year% equ 400 (
set /a "leap=1"
) else if %year% equ 500 (
set /a "leap=0"
) else if %year% equ 600 (
set /a "leap=1"
) else if %year% equ 700 (
set /a "leap=0"
) else if %year% equ 800 (
set /a "leap=1"
) else if %year% equ 900 (
set /a "leap=0"
) else if %year% equ 1000 (
set /a "leap=1"
) else if %year% equ 1100 (
set /a "leap=0"
) else if %year% equ 1200 (
set /a "leap=1"
) else if %year% equ 1300 (
set /a "leap=0"
) else if %year% equ 1400 (
set /a "leap=1"
) else if %year% equ 1500 (
set /a "leap=0"
) else if %year% equ 1600 (
set /a "leap=1"
) else if %year% equ 1700 (
set /a "leap=0"
) else if %year% equ 1800 (
set /a "leap=1"
) else if %year% equ 1900 (
set /a "leap=0"
) else if %year% equ 2000 (
set /a "leap=1"
) else if %year% equ 2100 (
set /a "leap=0"
) else if %year% equ 2200 (
set /a "leap=1"
) else if %year% equ 2300 (
set /a "leap=0"
) else if %year% equ 2400 (
set /a "leap=1"
) else (
set /a "leap=0"
)
if %leap% equ 1 (
set "day=29"
) else (
set "day=28"
)
) else if %month% equ 4 (
set "day=30"
) else if %month% equ 6 (
set "day=30"
) else if %month% equ 9 (
set "day=30"
) else if %month% equ 11 (
set "day=30"
) else (
set "day=31"
)
)
if %month% lss 10 set "month=0%month%"
if %day% lss 10 set "day=0%day%"
REM 输出2天前的日期
echo %year%-%month%-%day%
endlocal
这个批处理脚本首先获取当前日期,然后将日期转换为数字进行计算。接下来,它计算2天前的日期,并考虑了闰年的情况。最后,它输出2天前的日期。
请注意,这只是一个简单的方法,可能不适用于所有情况。在实际应用中,可能需要根据具体需求进行调整。
领取专属 10元无门槛券
手把手带您无忧上云