【问题标题】:Copy Multiple Directories into One Directory Keeping the root folder using Robocopy将多个目录复制到一个目录中使用 Robocopy 保留根文件夹
【发布时间】:2017-07-27 11:20:06
【问题描述】:

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

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

我想将它们复制到一个文件夹到另一个位置,例如: D:\dirBackups

所以结果是 D:\dirBackups\dir1 , D:\dirBackups\dir2, D:\dirBackups/dir3

目前 robocopy 正在复制 dir1dir2dir3 中的内容,所以我最终将三个目录的内容全部复制到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 命令。

文件被很好地复制,但根目录从未包含在内,因此它的工作方式就像展开所有文件夹并且只将每个文件夹的内部内容复制到一个位置。

谢谢

【问题讨论】:

  • 应该是反斜杠D:\dirBackups而不是正斜杠D:/dirBackups。另外你不需要使用/SEC相当于/COPY:DATS,因为你已经用过/COPYALL相当于/COPY:DATSOU .此外,您的 /XF 选项不会命名任何要排除的文件,请在命令提示符窗口中输入 ROBOCOPY /? 以获取有关该命令的更多信息。
  • 我的路径实际上是在使用 \ 而不是 / 我在输入时犯了一个错误...感谢您提供的信息,但是任何线索我可以将多个文件夹从根目录复制到另一个文件夹中结尾 ?谢谢

标签: batch-file cmd


【解决方案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
)

【讨论】:

  • 你是一个救生员@Compo...工作就像一个魅力...如果你能解释实现它的代码的重要部分,我真的很感激 :) 再次感谢; )
猜你喜欢
  • 1970-01-01
  • 2020-06-02
  • 1970-01-01
  • 1970-01-01
  • 2015-06-23
  • 2010-10-09
  • 1970-01-01
  • 2015-10-17
  • 2013-05-21
相关资源
最近更新 更多