根据文件掩码将文件从一个文件夹批量移动到多个文件夹

根据文件掩码将文件从一个文件夹批量移动到多个文件夹

我有一个文件夹,里面有十多万个 (100,000+) 个由脚本生成的 pdf 文件,需要根据文件名将它们移动到多个文件夹中。pdf 文件都这样命名:YY-nnnnn.pdf其中 YY 是年份,nnnnn 是一年内的文件顺序,如下所示:

00-00001.pdf
00-00002.pdf
00-00003.pdf

每年大约有 25,000 个文件。我已经生成了四年的文件,还有六年的 pdf 需要生成。

我需要将这些文件移动到服务器。服务器具有以下文件夹结构:

D:.
├───00-00000
├───00-01000
├───00-02000
├───00-03000
├───00-04000
├───00-05000
├───00-06000
├───00-07000
├───00-08000
├───00-09000
├───00-10000
├───00-11000

每个年份最多可以有YY-25000文件夹。文件需要根据前五个字符放入各自的文件夹中,如下所示:

├───00-00000
│       00-00001.pdf
│       00-00002.pdf
│       00-00003.pdf
│       00-00004.pdf
...
│       00-00997.pdf
│       00-00998.pdf
│       00-00999.pdf
├───00-01000
│       00-01000.pdf
│       00-01001.pdf
│       00-01002.pdf

我原本想使用该RoboCopy实用程序,但不知道该如何正确编写脚本。也许需要一个小脚本。

答案1

找到了基于的解决方案问题。移动文件的批处理文件是这样的:

@echo off
    for /f "tokens=*" %%F in ('dir/b/a-d d:\temp\pdfprints\*.pdf') do call :sub1 %%F
    goto :eof

    :sub1
    set name=%1
    move d:\temp\pdfprints\%name% R:\%name:~0,5%000\%name%

相关内容