【随手写】BAT脚本之获取N天前日期

时间:2021-04-06 08:51:51

最近需求总是变动遇到需要获取昨天时间,前五天,前10天等等等的日志,匹配、分析、移动、删除。随手写一个windows下的获取N天前时间日期的脚本。希望可以帮到看到这篇博客的程序员。下面是代码。

@echo off&setlocal enabledelayedexpansion
for /f "tokens=1-3 delims=-:/ " %%a in ("%date%") do (set Y=%%a&set M=%%b&set D=%%c&if "!M:~0,1!"=="0" set M=!M:~1!
if "!D:~0,1!"=="0" set D=!D:~1!)
set/a D-=10&if !D! leq 0 (set/a M-=1&if !M!==0 set/a Y-=1,M=12
set/a "T=^!(M-2)","R=(^!(Y%%4)&^!^!(Y%%100))|^!(Y%%400)","C=^!(M-4)|^!(M-6)|^!(M-9)|^!(M-11)","D=T*(28+R)+C*30+(^!T&^!C)*31"+D)
set M=0%M%&set D=0%D%
set mydate=%Y%%M:~-2%%D:~-2%
@echo %mydate%

其中 set/a D-=10这一句,我是获取了10天前的日期,当然各位程序员需要获取N天的数据,就改成你需要的天数就可以了。