批处理文件根据日期移动PDF文件,必要时创建文件夹

时间:2013-10-02 22:57:51

标签: batch-file

我对批处理文件比较新。我可以做很简单的事情,但是下一个就是把我扔掉一个循环。

我们有一个程序可以为客户生成PDF报价,以下列方式保存......

FirstnameLastname_Estimate_MMDDYYYY - ###

例如,如果我有一位顾客“John Doe”并且我们在今年圣诞节前夕给了他一个估计(我们系统中排名第239位),它将会是这样的。

JohnDoe_Estimate_12242013-239.pdf

现在它位于“C:\ Estimates”文件夹中。我希望批处理文件要查看“C:\ Estimates”文件夹中的所有文件,并自动移动按年份排序的文件。所以2012年的所有估算都放在“C:\ Estimates \ 2012”文件夹中,2013年在“C:\ Estimates \ 2013”​​等文件中。

这里的一些批处理文件让我接近,但没有雪茄。任何帮助都会很棒。谢谢!

1 个答案:

答案 0 :(得分:2)

C:\Estimates文件夹中启动它。文件名不应在客户名称中包含_-

@echo off
setlocal disabledelayedexpansion
for %%a in (*.pdf) do (
   for /f "tokens=3 delims=_-" %%b in ("%%a") do (
    set variable=%%b
       setlocal enabledelayedexpansion
         set variable=!variable:~-4!
         md !variable! 2>nul
         move "*!variable!-*.pdf" !variable! >nul
       endlocal
  )
)