RoboCopy 的作业选项有什么用? 和 开关到底有什么用/MON
?/MOT
我该如何使用它们? 我不明白它们,也找不到任何关于如何使用它们的示例。
- /星期一:n- MONitor 源;当发现超过 n 个变化时再次运行。
- /移动:米- 监控源;如果发生变化,则在 m 分钟内再次运行。
这是否意味着它会先运行一次,然后在完成后继续运行,如果文件结构的某个地方发生变化或者某些东西发生了变化并且过了一段时间,它会再次运行?
- /JOB:作业名称- 从命名的 JOB 文件中获取参数。
- /SAVE:工作名称- 将参数保存到命名的作业文件中
- /辞职- 处理命令行后退出(查看参数)。
- /新英格兰医学中心- 未指定源目录。
- /诺德- 未指定目标目录。
- /如果- 包括以下文件。
什么是作业文件?/NOSD
和/NODD
开关有什么用?
答案1
最好通过例子来解释:
这是一个简单的作业文件,称之为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
。)不过,只是猜测。
答案2
这是否意味着它会先运行一次,然后在完成后继续运行,如果文件结构的某个地方发生变化或者某些东西发生了变化并且过了一段时间,它会再次运行?
是的。/MON 计算更改的文件数量;/MOT 计算时间。
我一直不敢尝试这些选项,因为文档只说了如何启动这些作业,却没有说如何停止它们。据我所知,它们可能会变成不可见的、无法停止的计划任务。
这一页表示它一直运行直到您中断正在运行的作业,例如使用 control-C。
(作为答案而不是评论添加,因为 StackExchange 不允许我在没有 50 点声誉的情况下发表评论,而 3 年后我只有 1 点声誉。)
答案3
/MON
扫描源并在检测到更改时进行复制。
/MOT
再次重新运行n分钟,并复制任何检测到的更改
/JOB
允许您在文本文件中指定选项,以防您有很多选项(如排除)。
希望我知道该怎么做/NOSD
并且/NODD
去做,因为我从来没有理由使用它们。
答案4
如何使用作业文件
作业文件用于保存和重用(通常)较长的 robocopy 命令行。
创建 Robocopy 作业文件
ROBOCOPY C:\SRC C:\DST ...other.robocopy.options... /SAVE:TEST /QUIT
这将创建一个名为 TEST.RCJ 的 Robocopy 作业文件,其中包含您指定的所有 Robocopy 选项前/SAVE 开关,然后退出而不实际执行复制。
使用一个或多个作业文件
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)。