如何将 500,000 个文件的列表从 Windows Server 2008 复制到 Seagate NAS?

如何将 500,000 个文件的列表从 Windows Server 2008 复制到 Seagate NAS?

我有一个文本文件,里面有大约 500,000 个完整路径。我想将它们一次性复制到 NAS。它大约有 1TB 的数据。我应该将所有文件制作成一个 zip 文件还是单独复制它们?我如何才能自动完成这两项操作?

答案1

您可以使用For命令提示符或批处理脚本中的语句命令来执行此操作

For /f %f in (list.txt) do xcopy "%f" \\NasName\dest [switches]

典型开关:

  • /C即使出现错误也继续复印。
  • /I如果目标不存在且复制多个文件,则假定目标必须是一个目录。
  • /H还复制隐藏文件和系统文件。
  • /R覆盖只读文件。
  • /Y抑制确认是否覆盖现有目标文件的提示。

执行上述命令,然后离开几个小时。如果列表文件中的路径是相对路径,则将其替换%fC:\path\to\source\%f

不要忘记,您需要具有读取文件的权限才能复制它们,因此如果您的任何文件位于受限文件夹中(如其他用户的文档文件夹),则需要以管理员身份运行命令提示符/批处理文件。此外,如果您在批处理文件中运行此命令,则需要将单个替换%%%


如果你列出的 500,000 个文件只是下面的所有文件,c:\somepath你可以使用Robocopy而不是xcopy+for语句

robocopy c:\somepath \\NasName\dest [switches]

我推荐以下开关

  • /s复制子目录。请注意,此选项不包括空目录。
  • /zb使用重启模式。如果访问被拒绝,此选项将使用备份模式。
  • /MT创建多线程副本(仅适用于 Server 2008 R2 和 Windows 7)
  • /LOG:<logfile>将结果记录到文件而不是控制台(这将提高性能/MT

相关内容