我对批处理文件比较新。我可以做很简单的事情,但是下一个就是把我扔掉一个循环。
我们有一个程序可以为客户生成PDF报价,以下列方式保存......
FirstnameLastname_Estimate_MMDDYYYY - ###
例如,如果我有一位顾客“John Doe”并且我们在今年圣诞节前夕给了他一个估计(我们系统中排名第239位),它将会是这样的。
JohnDoe_Estimate_12242013-239.pdf
现在它位于“C:\ Estimates”文件夹中。我希望批处理文件要查看“C:\ Estimates”文件夹中的所有文件,并自动移动按年份排序的文件。所以2012年的所有估算都放在“C:\ Estimates \ 2012”文件夹中,2013年在“C:\ Estimates \ 2013”等文件中。
这里的一些批处理文件让我接近,但没有雪茄。任何帮助都会很棒。谢谢!
答案 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
)
)