我们正在安装 Windows 资源工具包,它会安装 RoboCopy。我们希望能够访问一些使用 RoboCopy 的 Windows 脚本,这样我们就可以从这些脚本开始构建其他东西。关于在哪里可以找到一些样品的任何想法?
注1:
一点资料。每次我们尝试将 D 驱动器复制到 E 驱动器(新驱动器)时,我们都会收到一条错误消息:
ERROR 32 (0x000000020) 复制文件 d:\pagefile.sys 进程无法访问该文件,因为它正被另一个进程使用。等待 30 秒。
只是为了帮助弄清楚。
我使用 Robocopy 在 9 个 Web 服务器之间同步网站内容。这是运行 robocopy.exe 的批处理文件的示例。此批处理文件计划每 5 或 10 分钟运行一次,或者可以手动运行以立即推送更改。
前面的命令会复制 d:\inetpub\wwwroot 的内容并推送到远程服务器的 d:\inetpub\wwwroot。
/E = 复制所有子目录,包括空目录
/PURGE = 删除源中不再存在的目标文件/文件夹
/SEC = 将文件的安全权限 (ACL) 复制到目标位置
/NP = 关闭复制进度条; 如果您正在记录结果,请务必执行此
操作 /NJH = 不记录作业标题
/NJS = 不记录作业摘要
/XF = 排除复制特定文件(例如 keepalive_ .)
/XD = 排除复制特定文件夹(例如trigger)
/R = 指定复制失败时重试的次数(例如 5)
/COPYALL = 复制所有内容:数据、属性、时间戳、安全性、所有权和审计信息;自从我指定 /SEC 以来,真的矫枉过正
/LOG = 将结果记录到指定的日志文件(例如 copy_to_webserver1.log)
我希望这能让你开始使用 Robocopy。我发现它是一种高度可靠且非常强大的解决方案,可以让我们的内容保持同步。
我没有任何脚本,但是内置的文档真的很容易理解并且非常有用。
它真的很简单,大多数人只是从头开始自己做。我从来没有见过任何“代码示例”,因为它基本上只是从哪里到哪里抛出一些参数的问题......但是看看那里的不同 robocopy GUI(只是谷歌它),其中大多数将向您显示生成的命令。
因此,查看您对 Trondh 的评论,我有几个预定的 RoboCopy 脚本,但是完成的方式(无论如何由我完成)是通过预定任务。例如,我有一个 RoboCopy 脚本,它使用我指定的任何参数将文件从驱动器 X:复制到驱动器 Y:。然后,我创建了一个计划任务,以指定的时间间隔运行此脚本,如果我担心监视此脚本,我可以创建第二个步骤,以通过电子邮件发送给自己的输出日志,如果我想定期查看它。
从小处着手,只需将一个文件夹从 a 点复制到 b 点。确保包括 /L 开关和 /LOG 开关。/L 开关只列出它要复制的文件,/Log 将创建一个日志,以便您可以验证要复制的内容。从那里你只会增加复杂性。对于示例脚本:
robocopy "C:\test_source" "\server01\C$\test_destination" /L /V /E /LOG:"c:\test_robocopy.log" /R:10 /W:30
要解决第二个问题(锁定文件错误和随后的等待),请使用开关和
/r
,例如:/w
/reg
这意味着仅在等待一秒钟后重试一次,并将这些设置在注册表中设为默认值。
链接脚本是一个模板,可用于复制打开的文件。您只需将脚本中的复制命令更改为 robocopy,您就可以 robocopy 打开的文件。