首页 > 代码库 > 利用批处理bat获取系统日期前三天的日期

利用批处理bat获取系统日期前三天的日期

在管理服务器的时候经常要根据系统的日期判断上传哪一天的日志文件,例如是周一需要上传上周五的日志,其他日期则上传前一天的日志,日志文件是以日期命名的。这就需要获取前三天的日期,或者前n天的日期。批处理结合vbs可以实现,文件如下。

if "%date:~13%"=="一" (set DaysAgo=3) else (set DaysAgo=1)
>"%temp%\MyDate.vbs" echo LastDate=date()-%DaysAgo%
>>"%temp%\MyDate.vbs" echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2)
>>"%temp%\MyDate.vbs" echo wscript.echo FmtDate
for /f %%a in ('cscript /nologo "%temp%\MyDate.vbs"') do (set DstDate=%%a)
set DstDate=%DstDate:~0,4%-%DstDate:~4,2%-%DstDate:~6,2%
echo %DstDate%

如果是win8系统可以将if "%date:~13%"改为if "%date:~12%"

set DstDate=%DstDate:~0,4%-%DstDate:~4,2%-%DstDate:~6,2%
这个事设置日期的格式