特定月份和年份的文件

时间:2019-05-12 07:07:19

标签: windows batch-file

我想创建一个Windows批处理脚本,该脚本允许仅在修改日期为特定月份和特定年份的情况下,才能将给定目录的文件名写入文本文件。
例如,如何打印在2018年5月C:\ tmp目录中修改的所有文件?

此刻我写了这条指令:

FORFILES /P C:\tmp /C "cmd /c if @isdir==FALSE set fdate=@fdate& (call echo @path) >> file.txt" >NUL 2>&1

我应该添加以下条件:

if %fdate:~3,2%==05 if %fdate:~6,4%==2018

1 个答案:

答案 0 :(得分:0)

我决定删除我的评论,并发布相关部分作为答案:

如果您希望将任务限制为使用,则可以从 (将file.txt写到与您的批处理文件)

@CD /D "C:\tmp"
@FORFILES /D 01/05/2018 /C "cmd /c if @isdir==FALSE FORFILES /D -31/05/2018 /M @file /C 0x22cmd /c if @isdir==FALSE Echo @fdate @ftime @path0x22" 2>nul >>"%~dp0file.txt"

如果您想提高命令效率,可以使用(以下将file.txt写入当前目录)

@For /F "Tokens=*" %%A In ('RoboCopy "C:\tmp" NULL /L /MaxAge:20180501 /MinAge:20180531 /NDL /NJH /NJS /NC /NS /TS')Do @Echo(%%A>>"file.txt"

仅需要For循环即可从输出中删除前导空格填充,如果您对此不关心,则可以简单地使用:

@RoboCopy "C:\tmp" NULL /L /MaxAge:20180501 /MinAge:20180531 /NDL /NJH /NJS /NC /NS /TS>"file.txt"