我在一台服务器上有大约 3GB 的文件/文件夹(47k 个文件,15k 个文件夹),并尝试通过 LAN 将其复制到同一域中的另一台服务器上。每次我完成复制时,被复制到的服务器上报告的文件数量都多于原始服务器上的文件数量。
前两次我使用了 Windows 复制(使用鼠标)。然后我使用了 robocopy(首先使用参数/E
,然后使用/E /PURGE
)。原始服务器上有 47,619 个文件/15,335 个文件夹。复制的服务器上有 47,640 个文件/15,335 个文件夹。我两次使用上述参数运行 robocopy 时文件数量没有改变。
有人知道可能出了什么问题吗?
其他详情:
- 两台服务器都是 Win Server SP1 Standard Ed。
- 文件要复制到的服务器在 C: 中有 638 MB 的可用空间,但我将所有内容复制到有足够空间的 D:。
- 我正在运行要将文件复制到的服务器上的命令。
答案1
使用鼠标复制意味着您可能使用 Windows 资源管理器复制了所有这些文件。我遇到过很多问题,大量文件存储在多个目录中,而 Windows 资源管理器会将文件复制到错误的目录中。
这意味着 Windows 资源管理器可能将某些文件复制到了错误的位置,而现在目标位置出现了重复文件 - robocopy 只会忽略那些没有覆盖的文件,这就是最终得到这些重复文件的原因。
要查找重复项,请使用以下 DOS 命令将目录结构输出到一些文本文件(这些操作将花费相当多的时间,因此您可以在单独的 DOS 窗口中启动它们,然后去喝杯咖啡):
- DIR /s /a /b [源路径] | SORT > file-listing-source.txt
- DIR /s /a /b [目标路径] | SORT > file-listing-target.txt
然后,使用搜索和替换编辑这些文件,删除不匹配的路径的前半部分。之后,使用以下 DOS 命令比较文件(此操作可能也需要一段时间,但不会像前两个操作那么长,因为排序已经完成;再去喝一杯咖啡,但这次点一份“小”杯):
- FC /a /l /n 文件列表源.txt 文件列表目标.txt > 文件列表差异.txt
然后查看“file-listing.txt”的内容,看看有什么不同。
(总共只会创建三个新的 .txt 文件。)