如何在命令行中获取日期值

如何在命令行中获取日期值

我需要执行一个命令,获取昨天的日期并将其构建到这样的文件路径中:

copy "Something 2010-12-06\*.zip" "d:\Copy\"

其中2010-12-6,昨天的日期格式为yyyy-mm-dd

根据答案中的链接,我找到了这个解决方案,它接近我想要的,但不完全是:

For /f "tokens=1-3 delims=/ " %%a in ('date /t') do (set cdate=%%c-%%b-%%a)
echo "Backup Set*\Backup Files %cdate% *\*.zip" 

这给了我今天的日期,我怎样才能获得昨天的日期?

答案1

目前这确实很混乱,但确实有效。除非其他人想编辑我的答案,否则我会尝试正确命名并在今晚晚些时候整理它。

@echo off
call :GetDate year month day
echo/Today is: %year%-%month%-%day%
goto :part2

:GetDate yy mm dd
setlocal ENABLEEXTENSIONS
set t=2&if "%date%z" LSS "A" set t=1
for /f "skip=1 tokens=2-4 delims=(-)" %%a in ('echo/^|date') do (
  for /f "tokens=%t%-4 delims=.-/ " %%d in ('date/t') do (
    set %%a=%%d&set %%b=%%e&set %%c=%%f))
endlocal&set %1=%yy%&set %2=%mm%&set %3=%dd%&goto :eof


:part2
call :DateToDays %year% %month% %day% days
echo/It has been %days% days since 1970-01-01
goto :part3


:DateToDays %yy% %mm% %dd% days

setlocal ENABLEEXTENSIONS
set yy=%1&set mm=%2&set dd=%3
if 1%yy% LSS 200 if 1%yy% LSS 170 (set yy=20%yy%) else (set yy=19%yy%)
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
endlocal&set %4=%j%&goto :eof


:part3
set /a yesterday=%days%-1


:part4
call :DaysToDate %yesterday% yy mm dd
echo/Yesterday was %yy%-%mm%-%dd%
goto :copy



:DaysToDate %days% yy mm dd
setlocal ENABLEEXTENSIONS
set /a a=%1+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a
set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5
set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10
(if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)
endlocal&set %2=%yy%&set %3=%mm%&set %4=%dd%&goto :eof

:copy
copy "Something %yy%-%mm%-%dd%\*.zip" "d:\Copy\"

:eof

我使用的脚本片段的来源。

答案2

这篇文章讨论如何将日期以你喜欢的格式保存到变量中:http://www.tech-recipes.com/rx/956/windows-batch-file-bat-to-get-current-date-in-mmddyyyy-format/

减法和变量的使用如下:http://commandwindows.com/variables.htm

那应该就可以了……

答案3

我的日期格式如下:

E:\>date /t
Wed 10/17/2012

这适用于我的格式:

E:\>echo %date:~10,4%-%date:~4,2%-%date:~7,2%
2012-10-17

相关内容