联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
@echo off setlocal enabledelayedexpansion :Main cls :: 日期可以带星期,但是,必须以年月日的顺序排列 :: 年份必须是四位,否则会出错 set day=%date% set days=0 echo.&echo. echo 指定的日期是:%day% echo. set input=2 :: 提取日期 for /f "tokens=1-3 delims=-/. " %%i in ("%day%") do ( set /a sy=%%i, sm=100%%j %% 100, sd=100%%k %% 100 ) set /a sd-=input if %sd% leq 0 call :count cls echo.&echo. echo 指定的日期是:%day% echo. set sm=0%sm% set sd=0%sd% echo %input% 天前的日期是:%sy%-%sm:~-2%-%sd:~-2% RD /S /Q %sy%-%sm:~-2%-%sd:~-2% && echo %date% 删除 %sy%-%sm:~-2%-%sd:~-2%日期录像成功 >>删除记录日志.txt exit :count set /a sm-=1 if !sm! equ 0 set /a sm=12, sy-=1 call :days set /a sd+=days if %sd% leq 0 goto count goto :eof :days :: 获取指定月份的总天数 set /a leap="^!(sy %% 4) & ^!(^!(sy %% 100)) | ^!(sy %% 400)" set /a max=28+leap set num=0 set str=31 %max% 31 30 31 30 31 31 30 31 30 31 for %%i in (%str%) do ( set /a num+=1 if %sm% equ !num! set days=%%i&goto :eof ) goto :eof
@echo off&setlocal enabledelayedexpansion for /f "tokens=1,2,3 delims=-" %%a in ('echo wscript.echo date-2 ^>t~.vbs ^& cscript //nologo t~.vbs ^& del t~.vbs') do ( set y=%%a&set m=%%b&set d=%%c if %%b lss 10 set m=0%%b&if %%c lss 10 set d=0%%c echo !y!-!m!-!d! ) echo.&pause