根据文件名批处理中的日期字符串移动文件

时间:2014-02-21 20:19:00

标签: date pdf batch-file

我的目录不断使用pdf文件进行更新。文件名如下所示:

0001_2014_02_14_000000001_018_001_000.pdf

0001_2014_02_14_000000002_018_002_000.pdf

0001_2014_02_15_000000003_018_001_000.pdf

0001_2014_02_15_000000004_018_002_000.pdf

如何创建一个批处理文件来解析日期(字符位置6)并将文件移动到名为d:\send的目录中。为了使它更复杂,我需要从今天的日期减去3天,只移动这些文件。 BTW修改日期的文件将无法正常工作。正确的日期是文件名中的日期。

例如: 今天是2014年2月21日 找到前缀为0001_2014_02_18_??????????.pdf的文件,并将其发送到d:\send

当然,今天的日期会每天更改,并且每天都会安排。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

在一些示例文件上测试:

@echo off
set day=-3
echo >"%temp%\%~n0.vbs" s=DateAdd("d",%day%,now) : d=weekday(s)
echo>>"%temp%\%~n0.vbs" WScript.Echo year(s)^& right(100+month(s),2)^& right(100+day(s),2)
for /f %%a in ('cscript /nologo "%temp%\%~n0.vbs"') do set "result=%%a"
del "%temp%\%~n0.vbs"
set "YYYY=%result:~0,4%"
set "MM=%result:~4,2%"
set "DD=%result:~6,2%"
move "????_%yyyy%_%mm%_%dd%_*.pdf" "d:\send"
pause