RoboCopy 的作业选项有什么作用?/MON
和/MOT
开关究竟是做什么的?我该如何使用它们?我不理解它们,也找不到任何有关如何使用它们的示例。
- /MON:n - 监控源;当看到超过 n 个更改时再次运行。
- /MOT:m - 监控源;在 m 分钟内再次运行时间,如果更改。
这是否意味着它将先运行一次,然后在完成后继续运行,如果文件结构中的某处发生更改或当某些内容发生更改并且时间已经过去时再次运行?
- /JOB:jobname - 从命名的 JOB 文件中获取参数。
- /SAVE:jobname - 将参数保存到指定的作业文件
- /QUIT - 处理命令行后退出(查看参数)。
- /NOSD - 未指定源目录。
- /NODD - 没有指定目标目录。
- /IF - 包括以下文件。
什么是工作文件?/NOSD
和/NODD
开关是干什么用的?
最好用例子来解释:
这是一个琐碎的工作文件,称之为
sample.rcj
:c:\Documents and Settings
它指定将当前机器的目录复制到未指定位置的选项。以下是您如何使用它复制到
%DEST%
环境变量中指定的目标,将日志记录添加到%LOG%
文件中。/NOSD
给出,因为源是在作业文件中指定的。您可以在命令行上创建一个 robocopy 命令,然后当您满意它正在执行您想要的操作时,再次运行它
/SAVE
以将选项保存到文件中。/QUIT
解析选项,如果你有什么问题会抱怨(无效的选项,源不存在)但实际上没有做任何事情。我想这
/IF
会让你在工作本身之外包含一个选项文件?(在我的示例中,我可以将/LOG
选项放在一个文件中并将其包含在 . 中/IF
。)不过,只是猜测而已。是的。/MON 计算更改的文件数;/MOT 计算时间。
我一直害怕尝试这些选项,因为文档说如何开始这些工作,而不是如何停止它们。据我所知,它们可能会变成隐形的、不可阻挡的计划任务。
此页面指示它会一直运行,直到您中断正在运行的作业,例如使用 control-C。
(添加为答案而不是评论,因为 StackExchange 不允许我在没有 50 声望的情况下写评论,而我在 3 年后有 1 声望。)
/MON
检测到更改时扫描源并复制。 在n/MOT
分钟内重新运行,并复制任何检测到的更改/JOB
如果您有很多选项(例如排除项),则允许您在文本文件中指定选项。希望我知道什么
/NOSD
并/NODD
做了什么,因为我从来没有理由使用它们。来自:http ://www-pc.uni-regensburg.de/systemsw/tools/robocopy.doc
监视目录树 使用 /MON:n 和 /MOT:m 开关,您可以监视源目录树的更改,并在更改发生时复制更改。/MON:n 开关指定在再次运行之前必须发生的最小更改数。/MOT:m 开关指定再次运行之前必须经过的最短时间(以分钟为单位)。如果您只指定其中一个开关,则假定另一个开关的值为 1。
指定监控时,Robocopy 永远不会终止。相反,它会进入一个循环,执行正常的 Robocopy 传递,然后监视源目录树的更改,直到检测到 n 个更改和 m 分钟过去。当这两个条件都满足时,将开始另一个 Robocopy 通行证。复制和监控的整个过程会无限重复,直到用户手动终止 Robocopy 过程。
作为最低要求,Robocopy 会监视源目录树以了解文件和目录名称、大小和上次写入时间的更改。如果要复制属性,Robocopy 还将监视树的属性更改。同样,如果要复制安全信息,Robocopy 也将监视树的安全更改。
因此,例如,执行编辑并保存单个新文件的用户可能会导致将各种类型的多个更改报告回 Robocopy。因此,可能需要进行一些实验来确定每个 Robocopy 作业的 /MON 和 /MOT 的适当阈值,尤其是那些监视繁忙树的作业。
如何使用作业文件
作业文件用于保存和重用(通常)较长的 robocopy 命令行。
创建 Robocopy 作业文件
这将创建一个名为 TEST.RCJ 的 Robocopy 作业文件,其中包含您在 /SAVE 开关之前指定的所有 Robocopy 选项,然后退出而不实际执行复制。
使用一个或多个作业文件
查看或编辑作业文件
只需使用文本编辑器打开它。格式是不言自明的。
测试作业文件
如果您想测试您的编辑,或者如果您正在组合多个作业文件并想知道最终结果是什么,请运行以下命令:
创建没有源/目标目录的作业文件
在这种情况下,使用以下语法:
显然 /NOSD 和 /NODD 代表 NO Source Dir 和 NO Destination Dir。
您还应该在运行定义源或目标的作业文件时使用这些开关,因为如果您在命令行中再次输入,robocopy 会报错。
关于 /MON 和 /MOT
您对手册的理解是正确的。Robocopy 会一直运行检测并处理任何更改,直到您终止它(例如使用 Ctrl-C)。
例如,我使用该
/MOT
开关以每 10 分钟更新一次 DR 文件系统副本。我在凌晨 12 点启动 robocopy,执行计划任务,它运行一整天,每 10 分钟复制一次更改。计划任务设置为在 23 小时 55 分后自行停止,然后第二天凌晨 12 点的任务再次启动 robocopy。尽管 robocopy 在等待 10 分钟期限到期时确实会指示更改的数量,但它仍会扫描您指向的整个源文件夹结构。
/XD <folder>
因此,如果可以的话,最好使用一些文件夹例外 ( ) 来缩小源结构的范围。另一种简单的方法是使用 /MIR 开关并安排您的 bat 文件一遍又一遍地运行它。它只会根据源端进行更改。您需要先运行完整副本。
检查日志文件,您将看到结果。还可以使用 /MT 开关进行多线程。使复制速度更快。
检查Technet中的文档。