将多个目录复制到一个目录使用Robocopy保留根文件夹

时间:2017-07-27 11:20:06

标签: batch-file cmd

我正在尝试创建一个批处理脚本,将不同位置的多个目录复制到另一个位置的一个目录中。问题是robocopy正在复制根目录的内部内容而不是根目录本身

所以如果我在位置a有3个目录: C:\ dir1 C:\ dir2 C:\ dir3

我希望将它们复制到一个文件夹到另一个位置ex: 的 d:\ dirBackups

这样结果将是 D:\ dirBackups \ dir1 D:\ dirBackups \ dir2 D:\ dirBackups / dir3

目前robocopy正在复制 dir1 dir2 dir3 中的内容,所以我最终将这三个目录的内容全部复制到的 d:\ dirBackups

我正在使用以下代码

for /F "tokens=*" %%A in (%pathsFile%) do (
   robocopy %%A D:\dirBackups /E /COPYALL /XF /SEC /SECFIX /TIMFIX /W:0 /R:1 /REG /XJ /Z /FFT
)

%pathsFile% 是一个文本文件,其中包含要备份到 D:\ dirBackups 的目录,因此我正在循环文件和每行我触发相同的robocopy命令。

文件正在被很好地复制,但根目录从未被包含在内,因此它可以像扩展所有文件夹一样工作,只将每个文件夹的内部内容复制到一个位置。

由于

1 个答案:

答案 0 :(得分:1)

这对你有什么用?

@ECHO OFF
FOR /F "USEBACKQ DELIMS=" %%A IN ("%pathsFile%") DO (
    ROBOCOPY "%%~A" "D:\dirBackups\%%~nxA" /E /Z /COPYALL /SECFIX /TIMFIX /XJ /FFT /R:1 /W:0 /REG
)