Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在windows批处理中将日期附加到文件名_Windows_Date_Batch File_Formatting_Cmd - Fatal编程技术网

在windows批处理中将日期附加到文件名

在windows批处理中将日期附加到文件名,windows,date,batch-file,formatting,cmd,Windows,Date,Batch File,Formatting,Cmd,我正在尝试使用winzip将昨天的日期附加到zip文件中。 但我无法获取正确的日期格式。 我找到剧本了 @echo关闭 设置yyyy= 设置$tok=1-3 对于/f“tokens=1 delims=.:/-,”('date/t')中的%%u,请设置$d1=%u 如果“%$d1:~0,1%”全球技术法规“9”设置$tok=2-4 对于/f“令牌=%$tok%delims=.:/-,”%%u in('date/t')do( 对于/f“skip=1标记=2-4 delims=/-,()”%%x in

我正在尝试使用winzip将昨天的日期附加到zip文件中。 但我无法获取正确的日期格式。
我找到剧本了

@echo关闭
设置yyyy=
设置$tok=1-3
对于/f“tokens=1 delims=.:/-,”('date/t')中的%%u,请设置$d1=%u
如果“%$d1:~0,1%”全球技术法规“9”设置$tok=2-4
对于/f“令牌=%$tok%delims=.:/-,”%%u in('date/t')do(
对于/f“skip=1标记=2-4 delims=/-,()”%%x in('echo.^ date')do(
设置%%x=%%u
设置%%y=%%v
设置%%z=%%w
设定$d1=
设置$tok=
)
)
如果“%yyy%”==“设置yyy=%yy%
如果/I%yyyy%LSS 100套/A yyyy=2000+1%yyyy%-100
设置CurDate=%mm%/%dd%/%yyyy%
设置dayCnt=%1
如果“%dayCnt%”==“”设置dayCnt=1
REM在这里减去你的日子
设置/日折旧率=1%日折旧率%-100-%dayCnt%
设置/A毫米=1%毫米-100毫米
:CHKDAY
如果/I%dd%GTR 0转到完成
设置/A毫米=%mm%-1
如果/I%mm%GTR 0转到调整日
一套/A毫米=12
设置/A yyyy=%yyyy%-1
:调整日期
如果%mm%==1转到SET31
如果%mm%==2转到跳转
如果%mm%==3转到SET31
如果%mm%==4转到SET30
如果%mm%==5转到设置31
如果%mm%==6转到SET30
如果%mm%==7转到SET31
如果%mm%==8转到SET31
如果%mm%==9转到SET30
如果%mm%==10转到设置31
如果%mm%==11转到SET30
REM**第12个月到期
:SET31
设置/日折旧率=31+%日折旧率%
转到周日
:SET30
设置/日折旧率=30+%日折旧率%
转到周日
:LEAPCHK
设置/A tt=%yyyy%%%4
如果不是%tt%==0转到SET28
设置/A tt=%yyyy%%%100
如果不是%tt%==0转到SET29
设置/A tt=%yyyy%%%400
如果%tt%==0转到SET29
:SET28
设置/日折旧率=28+%日折旧率%
转到周日
:SET29
设置/日折旧率=29+%日折旧率%
转到周日
:完成
如果/I%mm%LSS 10组毫米=0%mm%
如果/I%dd%LSS 10设置dd=0%dd%
%CurDate%之前的回显日期%dayCnt%天为%dd%%mm%%yyyy%
暂停
此脚本将年份显示为
YYYY
,结果输出为
DDMMYYYY
,我在哪里修改以获得
DDMMYY
?或者有没有人有更简单的方法将
DDMMYY
(当前日期前一天)添加到文件名中


提前谢谢

下面的批处理文件将1天添加到当前日期,并以所需格式显示:

@echo off
setlocal EnableDelayedExpansion
set i=0
for %%d in (31 28 31 30 31 30 31 31 30 31 30 31) do (
   set /A i+=1
   set days[!i!]=%%d
)
for /F "tokens=1-3 delims=/" %%a in ("%date%") do (
   set /A dd=10%%a %% 100+1, mm=10%%b %% 100, yy=%%c %% 100, yyMOD4=yy %% 4
)
if %yyMOD4% equ 0 set days[2]=29
if %dd% gtr !days[%mm%]! (
   set /A dd=1, mm+=1
   if !mm! gtr 12 (
      set /A mm=1, yy+=1
   )
)
if %dd% lss 10 set dd=0%dd%
if %mm% lss 10 set mm=0%mm%
set tomorrow=%dd%%mm%%yy%
echo %tomorrow%
REM ren oldname.ext oldname-%tomorrow%.ext

此批处理文件假定
echo%date%
以DD/MM/YYYY格式显示日期。如果没有,则需要稍作修改。

感谢Aacini提供上述代码,在我的电脑上以%date%显示日期DD/MM/YYYY格式进行了测试,假设我需要编辑这种日期格式的代码,我该怎么做?@overs33r:只需更改
“tokens=1-3 delims=/”
by
“tokens=2-4 delims=/”
。请注意,斜杠后面有一个空格。谢谢@Aacini,它工作得很好!A非常感谢您的及时回复@我可以请你们投票支持我的答案并选择它作为最佳答案吗?