批处理文件根据文件名将文件复制到多个文件夹

Posted

技术标签:

【中文标题】批处理文件根据文件名将文件复制到多个文件夹【英文标题】:Batch file to copy files based on file name to multiple folders 【发布时间】:2015-07-31 00:44:57 【问题描述】:

好吧,对这个超级新手,但我需要一些帮助。我的情况是我在多个文件夹中有多个 pdf 文件。示例:

文件夹 - “XYZ 图纸”

包含文件 - “绘图 - 10”、“绘图 - 11”、“绘图 - 12”

我想将文件夹中的每个文件复制到另一个位置。每个文件将被单独移动到它自己的文件夹中,例如:

文件夹 - “10”

包含文件 - “绘图 - 10”

文件夹 - “11”

包含文件 - “绘图 - 11”

文件夹 - “12”

包含文件 - “绘图 - 12”

所有的目标文件夹都已经创建好了,所以我知道每个文件夹的路径,我希望每个文件都放在哪里,但是手动为超过 1000 个文件执行此操作似乎不是可行的方法。有人能帮帮我吗?

【问题讨论】:

文件是如何命名的?所有文件名是否都具有相同的模式? 是的,文件的标题相同。 xxxxx.xxx - IFC.pdf 文件名中的每个“x”代表一个数字,例如 50832.001 - IFC。所有文件都位于一个文件夹中。我可以将目标文件夹放在文件所在的同一主文件夹中,也可以将它们放在需要的任何位置。 【参考方案1】:

如果您的文件的名称与此完全相同(Something - number.pdf),并且它们与您的 bat 文件位于同一文件夹中,并且文件夹 1、2、3... 也位于同一文件夹中,则此代码应该可以工作:

FOR %%a IN (*.pdf) DO (
    FOR /F "tokens=3" %%b IN ("%%a") DO (
        FOR /F "tokens=1 delims=." %%c IN ("%%b") DO (
            COPY "%%~a" "%%~dpa%%c\%%~nxa" /Y
        )
    )
)

如果路径不同,您将不得不进行一些调整。

【讨论】:

以上是关于批处理文件根据文件名将文件复制到多个文件夹的主要内容,如果未能解决你的问题,请参考以下文章

根据文件名将 Google Cloud 存储桶中的多个文件复制到不同的目录

根据txt中的文件名将文件复制到目标文件夹中

cmd根据文件名创建文件夹并移动文件到创建的文件夹内

根据文件名将目录中的多个 .xlsx 文件读取到单独的 Pandas 数据框中

使用SSIS表达式任务和文件系统任务,根据文件名将文件从一个文件夹移动到多个文件夹

如何根据列名将数据从 CSV 复制到目标表?