我有一个文本文件,里面有大约 500,000 个完整路径。我想将它们一次性复制到 NAS。它大约有 1TB 的数据。我应该将所有文件制作成一个 zip 文件还是单独复制它们?我如何才能自动完成这两项操作?
答案1
您可以使用For
命令提示符或批处理脚本中的语句命令来执行此操作
For /f %f in (list.txt) do xcopy "%f" \\NasName\dest [switches]
典型开关:
/C
即使出现错误也继续复印。/I
如果目标不存在且复制多个文件,则假定目标必须是一个目录。/H
还复制隐藏文件和系统文件。/R
覆盖只读文件。/Y
抑制确认是否覆盖现有目标文件的提示。
执行上述命令,然后离开几个小时。如果列表文件中的路径是相对路径,则将其替换%f
为C:\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
)