
我不敢相信我在通过 Windows 命令行将一个目录复制到另一个目录中时遇到了麻烦。
我想要做的事情很简单:
假设我有一个目录-:
C:\test
我想将测试复制到 D: 因此在 D 中应该有一个如下文件夹:
D:\test
当我使用
robocopy C:\test D:\test \E
D 盘的根目录中最终包含 C:\test 的内容,而不是包含在名为 test 的目录中。
这件简单的事情你是怎么做到的?
答案1
如果要创建完全重复,请使用以下版本(相当于添加/E 和/PURGE):
robocopy c:\source d:\destination /MIR
如果您只想复制目录和子目录(包括空目录),请使用
robocopy c:\source d:\destination /E
正是 E 选项上的反斜杠阻碍了你。
要了解有关 Robocopy 的更多信息,请通过以下便捷搜索:
答案2
在我看来,robocopy
前面答案中的用法实际上并没有回答这个问题,即将源文件夹及其内容复制到目标文件夹。
以下是对我有用的方法。它将创建日期和活动记录到文件和屏幕上。如果无法访问,它还会重试读取文件最多 5 次。您可以随意修改标志以满足您的需求。
robocopy 'G:\Some Directory\A ' 'E:\Some Directory\A ' /e /dcopy:T /mt /tee /log:A.log /r:5
有两个对我来说似乎不太明显的观察结果:
- 路径字符串需要以空格结尾,以便在目标位置创建源根目录,而不仅仅是其内容而不包含包含目录。
- 目标处的根目录需要位于目标路径中,即使在发出命令之前它不存在。
- 根目录的原始创建日期仍将保留。
我感到惊奇的是,像被问到的那样普遍期望的操作却没有更好的记录。
答案3
答案4
虽然这个答案没有使用robocopy
,但我认为它仍然达到了复制目录的目的。
您可以尝试使用:xcopy
用法:xcopy source [destination] ...
您可以通过执行来查看更多详细信息xcopy /?