1

我正在尝试制作一个 .bat 将大量标记为“(日期)(客户)-(文档标题).pdf”的文件排序,例如“12-21-11 Thompson - Case Management.pdf”到标题为的文件夹中客户。到目前为止,我已经得到:

for /f "tokens=2* delims= " %%b in ('dir /b *.pdf') do (
    md %%b

因此 %%b 是客户端名称,例如“Thompson”,并且创建了相应的文件夹,但我不确定如何move使它只考虑 %%b。“-”之后的标题对于每个文件都不一致,所以类似的东西move "%%a %%b %%c %%d"并不总是有效。有没有办法做到这一点?

或者,如果更容易,有没有办法在排序文件时只考虑第 10 个字符?所以“12-21-11 Thompson - Case Management”可以分类到一个名为“T”的文件夹中

4

2 回答 2

0

未测试:

 for /f "tokens=2* delims= " %%b in ('dir /b *.pdf') do (
        md %%b > nul 2>&1
        for /f %%F in ('dir /b /a:-d *%%b*.pdf') do (
           move %%F %%b
        )

    )
于 2013-02-22T21:47:24.337 回答
0

使用简单的 FOR 循环列出文件,并使用内部 FOR /F 循环解析出客户端名称。

for %%F in (*.pdf) do for /f "tokens=2" %%A in ("%%F") do (
  if not exist "%%A\" md "%%A"
  move "%%F" "%%A"
)
于 2013-02-23T15:06:14.470 回答