RoboCopy的作业和监视选项


21

RoboCopy的作业选项有什么作用?/MON/MOT开关的作用到底是什么?我该如何使用它们?我不理解它们,也找不到任何有关如何使用它们的示例。

  • / MON:n-监视源;当看到超过n个变化时,再次运行。
  • / MOT:m -MOnitor来源;如果更改,请在m分钟后再次运行。

这是否意味着它会先运行一次,然后在完成后继续运行,如果文件结构中某处发生了更改或发生了某些更改并且已经过去了一段时间,则它将再次运行?

  • / JOB:jobname-从命名的JOB文件中获取参数。
  • / SAVE:jobname-将参数保存到命名的作业文件
  • / QUIT-处理命令行后退出(以查看参数)。
  • / NOSD-未指定源目录。
  • / NODD-未指定目标目录。
  • / IF-包括以下文件。

什么是工作文件?什么是/NOSD/NODD交换机呢?


很好的问题,直到我看到您的标签,我才意识到robocopy是Windows 7的一部分。:-)
Chris_K,2009年

谢谢!认为它也是Vista的一部分,但是我使用的是Windows 7,因此将其拍打在那里。我几天前都不知道这个工具:D
Svish

1
自Windows Vista和Windows Server 2008以来,Robocopy就已成为标准配置。在此之前,自3.5版以来,Robocopy自v1.7开始作为Windows资源工具包中的工具公开提供(在此之前,MS员工将其称为“凯文(Kevin)写的很棒的复制工具...“)
杰西卡·麦金农

Answers:


6

这是否意味着它会先运行一次,然后在完成后继续运行,如果文件结构中某处发生了更改或发生了某些更改并且已经过去了一段时间,则它将再次运行?

是。/ MON计算更改的文件数;/ MOT计算时间。

我一直不敢尝试这些选项,因为文档说了如何开始这些工作,而不是如何停止它们。据我所知,它们可能会变成看不见的,不可阻挡的计划任务。

该页面指示它一直运行,直到您中断正在运行的作业,例如使用control-C。

(添加为答案而不是评论,因为StackExchange不允许我写没有50名声望的评论,三年后我只有1名声望。)


6

最好用示例解释:

这是一个简单的作业文件,称为sample.rcj

:: Source Directory :
    /SD:C:\Documents and Settings\  :: Source Directory.

:: Destination Directory :
::  On command line

:: Copy options :
    /E      :: copy Subdirectories, including empty ones.

它指定用于将c:\Documents and Settings当前计算机的目录复制到未指定位置的选项。

这是使用它复制到%DEST%环境变量中指定的目标的方法,将日志记录添加到%LOG%文件中。

robocopy /nosd %DEST% /log+:%LOG% /job:sample

/NOSD 之所以给出,是因为在作业文件中指定了源。

您可以在命令行上创建robocopy命令,然后在满意时执行它,然后再次运行/SAVE以将选项保存到文件中即可。

/QUIT 解析选项,如果出现错误(无效选项,源不存在),但实际上不执行任何操作,将进行投诉。

我想这/IF会让您在工作本身之外还包括一个选项文件吗?(在我的示例中,我可以将/LOG选项放入文件中,并包括在其中/IF。)不过,只是在这里猜测。


我不知道/ MON和MOT选项,但是我怀疑shufler正确使用了它们。试试看,让我们知道!
兰迪·奥里森

ps。:关于这个问题的更多资讯detroitdavesraves.blogspot.co.uk/2011/08/...
JohnLBevan

5

/MON扫描源并在检测到更改时进行复制。 /MOTn分钟内再次重新运行,并复制所有检测到的更改

/JOB 如果您有很多选项(例如排除项),则允许您在文本文件中指定选项。

希望我知道自己做了什么/NOSD/NODD因为我从来没有理由使用它们。


您能创建一个使用/ JOB开关的示例吗?我无法正常工作...
Svish

/ job文件包含开关列表(每行一个)及其参数。您还可以使用/ save开关输出作业文件(.rcj)供以后使用
shufler

/ MOT 在有更改的地方每n分钟重新运行一次(请参见手册:“监视源,如果检测到更改,则在M分钟内再次运行”)
ndemou

3

来自: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的适当阈值,尤其是那些监视繁忙树木的阈值。


嗯,所以它可以用来检测重命名和移动。但是,当它确实检测到树中的更改时,是否将文件复制到新名称/位置并从旧名称/位置删除(从而执行不必要的写操作),或者可以重命名/移动它?
Synetech

Chrome浏览器将此文档文件标记为恶意软件!
Aardvark 2015年

1

例如,我使用该/MOT开关使DR文件系统保持最新状态,每10分钟复制一次。我从计划的任务在凌晨12点开始进行robocopy操作,它整天运行,每10分钟复制一次所有更改。排定的任务设置为在23h55m之后停止,然后第二天的任务在凌晨12点再次启动robocopy。

尽管robocopy确实会在等待10分钟后显示更改的数量,但它仍会扫描您指向它的整个源文件夹结构。因此,/XD <folder>如果可以的话,最好通过几个文件夹例外()来缩小源结构的范围。


想分享您的脚本吗?
Svish 2010年

0

另一种简单的方法是仅使用/ MIR开关并计划bat文件来一次又一次地运行它。它将仅基于源端进行更改。您需要先运行完整副本。

检查日志文件,您将看到结果。也可以使用/ MT开关进行多线程处理。


0

如何使用作业文件

作业文件用于保存和重复使用(通常)长的robocopy命令行。

创建Robocopy作业文件

ROBOCOPY C:\SRC C:\DST ...other.robocopy.options... /SAVE:TEST /QUIT

这将创建一个名为TEST.RCJ的Robocopy作业文件,其中包含您 / SAVE开关之前指定的所有Robocopy选项,然后在不实际执行复制的情况下退出。

使用一个或多个作业文件

ROBOCOPY /JOB:TEST /JOB:JOBFILE2 ...other.options...

查看或编辑作业文件

只需使用文本编辑器将其打开即可。格式不言自明。

测试作业文件

如果要测试您的编辑,或者要合并多个作业文件,并且想知道最终结果是什么,请运行以下命令:

ROBOCOPY /JOB:JOBFILE1 /JOB:JOBFILE2 /QUIT

创建没有源/目标目录的作业文件

在这种情况下,请使用以下语法:

ROBOCOPY /NOSD /NODD ...options... /SAVE:TEST /QUIT

显然,/ NOSD和/ NODD代表NO Source Dir和NO Destination Dir。

在运行定义源或目标的作业文件时,还应该使用这些开关,因为如果您在命令行中再次输入,robocopy将会抱怨。

关于/ MON和/ MOT

您对手册的理解是正确的。Robocopy会一直运行以检测并采取任何措施,直到您将其终止(例如,使用Ctrl-C键)。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.