按文件类型从子目录复制到单个文件夹?

时间:2012-08-22 19:39:49

标签: batch-file robocopy

我在嵌套的子文件夹中有很多PNG。我想将它们全部复制到一个目标文件夹。我有很多这样的事情要做。

使用robocopy [sourcefolder] [destfolder] *.png /s复制子文件夹,这是我不想要的。

1 个答案:

答案 0 :(得分:0)

您可以使用for循环完成此操作:

for /f %%d in ('dir %sourcefolder% /b /ad') do (
    robocopy %sourcefolder%\%%d %destfolder% *.png /s
)

请注意,这只适用于一个级别的子文件夹,如果您有更多,则必须使用嵌套的for循环。这看起来像这样:

for /f %%d in ('dir %sourcefolder% /b /ad') do (
    robocopy %sourcefolder%\%%d %destfolder% *.png /s

    for /f %%e in ('dir %sourcefolder%\%%d /b /ad') do (
        robocopy %sourcefolder%\%%d\%%e %destfolder% *.png /s
    )
)

请记住,每个for循环必须有自己的变量(例如%%d%%e)。 如果你有很多级别的子文件夹,这可能会有点毛茸茸,那么我会考虑切换到另一种脚本语言。