robocopy命令简介
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
robocopy命令简介
⼀ Robocopy简介
Robocopy 是⼀个功能超强的32位的⽂件复制⼯具,该⼯具来⾃windows资源包,可以直接在⽹上下载。
使⽤Robocopy你能够拷贝单个⽬录,或迭代的拷贝⽬录及其所有的⼦⽬录。
该⼯具通过⽂件是否存在于源⽬录,⽬标⽬录,或两者都存在来分类。
如果⽂件同时存在于源⽬录和⽬标⽬录,则该⼯具更具体地通过⽐较源⽂件和⽬标⽂件的⼤⼩和时间戳来分类。
通过这些分类,你可以控制那些⽂件将被拷贝。
如果⼀个⽂件同时存在于源⽬录和⽬标⽬录,默认的只有源⽂件和⽬标⽂件拥有不同的时间戳或⼤⼩时,Robocopy重新拷贝该⽂件。
如果源⽬录和⽬标⽬录处于⽐较差的⽹路环境中时,通过此⽅式可以节约时间。
同时你还可以设置当拷贝有错误发⽣时,继续重新拷贝,如果你所处的⽹络不太稳定的话,此⽅式可以⼤⼤的节约时间。
⼆使⽤格式
ROBOCOPY source destination [file [file]...] [options]
源:: 源⽬录(驱动器:\路径或\服务器\共享\路径)。
⽬录:: ⽬标⽬录(驱动器:\路径或\服务器\共享\路径)。
⽂件:: 要复制的⽂件(名称/通配符: 默认为 "*.*")。
三功能
1)⽤⽂件名,通配符,路径,⽂件属性来匹配拷贝源;或者也可以使⽤⽂件名,通配符,路径,⽂件属性来从源⽬录中去除匹配的项,剩余的项作为拷贝源。
2)通过名字或路径来去除⼦⽬录的拷贝。
3)在拷贝后删除源⽂件或⽬录。
(其实就是移动功能)
4)在⽬标⽬录中删除源⽬录中不存在的⽂件和⽬录。
(其实就是同步功能,保证⽬标⽬录跟源⽬录保持⼀致)
5)控制当拷贝中遭遇⽹络问题时,重新拷贝的次数和间隔时间。
6)安排拷贝⼯作⾃动运⾏。
7)指定何时拷贝开始执⾏。
8)监控⽬录树的改变。
9)选择性的拷贝数据。
四版本
v1.96 - Bundled in the Windows 2000
XP010 - Bundled in the Windows 2003 resource kit
XP026 - Downloaded with Robocopy GUI
XP027 - Bundled with Windows Vista
XP028 - Bundled with Windows Vista SP1 and Windows Server 2008
五来⾃vista版本的robocopy的命令⾏选项
1)复制选项:
/S :: 复制⼦⽬录,但不复制空的⼦⽬录。
/E :: 复制⼦⽬录,包括空的⼦⽬录。
/LEV:n :: 仅复制源⽬录树的前 n 层。
/Z :: 在可重新启动模式下复制⽂件。
/B :: 在备份模式下复制⽂件。
/ZB :: 使⽤可重新启动模式;如果拒绝访问,请使⽤备份模式。
/EFSRAW :: 在 EFS RAW 模式下复制所有加密的⽂件。
/COPY:复制标记:: 要复制的⽂件内容(默认为 /COPY:DAT)。
(复制标记: D=数据,A=属性,T=时间戳)。
(S=安全=NTFS ACL,O=所有者信息,U=审核信息)。
/DCOPY:T :: 复制⽬录时间戳。
/SEC :: 复制具有安全性的⽂件(等同于 /COPY:DATS)。
/COPYALL :: 复制所有⽂件信息(等同于 /COPY:DATSOU)。
/NOCOPY :: 不复制任何⽂件信息(与 /PURGE ⼀起使⽤⽣效)。
/SECFIX :: 修复所有⽂件的⽂件安全性,即使是跳过的⽂件。
/TIMFIX :: 修复所有⽂件的⽂件时间,即使是跳过的⽂件。
/PURGE :: 删除源中不再存在的⽬标⽂件/⽬录。
/MIR :: 镜像⽬录树(等同于 /E 和 /PURGE)。
/MOV :: 移动⽂件(复制后从源中删除)。
/MOVE :: 移动⽂件和⽬录(复制后从源中删除)。
/A+:[RASHCNET] :: 将给定的属性添加到复制⽂件。
/A-:[RASHCNET] :: 从复制⽂件中删除给定的属性。
/CREATE :: 仅创建⽬录树和长度为零的⽂件。
/FAT :: 仅使⽤ 8.3 FAT ⽂件名创建⽬标⽂件。
Loading [MathJax]/jax/output/HTML-CSS/jax.js
/256 :: 关闭超长路径(> 256 字符)⽀持。
/MON:n :: 监视源;发现多于 n 个更改时再次运⾏。
/MOT:m :: 监视源;如果更改,在 m 分钟时间内再次运⾏。
/RH:hhmm-hhmm :: 运⾏⼩时数 - 可以启动新副本的时间。
/PF :: 以每个⽂件(⽽不是每个步骤)为基础检查运⾏⼩时数。
/IPG:n :: 程序包间的间距(ms),以释放低速线路上的带宽。
/SL:: 对照⽬标复制符号链接。
2)⽂件选择选项:
/A :: 仅复制具有存档属性集的⽂件。
/M :: 仅复制具有存档属性的⽂件并重置存档属性。
/IA:[RASHCNETO] :: 仅包含具有任意给定属性集的⽂件。
/XA:[RASHCNETO] :: 排除具有任意给定属性集的⽂件。
/XF ⽂件[⽂件]... :: 排除与给定名称/路径/通配符匹配的⽂件。
/XD ⽬录[⽬录]... :: 排除与给定名称/路径匹配的⽬录。
/XC :: 排除已更改的⽂件。
/XN :: 排除较新的⽂件。
/XO :: 排除较旧的⽂件。
/XX :: 排除多余的⽂件和⽬录。
/XL :: 排除孤⽴的⽂件和⽬录。
/IS :: 包含相同⽂件。
/IT :: 包含已调整的⽂件。
/MAX:n :: 最⼤的⽂件⼤⼩ - 排除⼤于 n 字节的⽂件。
/MIN:n :: 最⼩的⽂件⼤⼩ - 排除⼩于 n 字节的⽂件。
/MAXAGE:n :: 最长的⽂件存在时间 - 排除早于 n 天/⽇期的⽂件。
/MINAGE:n :: 最短的⽂件存在时间 - 排除晚于 n 天/⽇期的⽂件。
/MAXLAD:n :: 最⼤的最后访问⽇期 - 排除⾃ n 以来未使⽤的⽂件。
/MINLAD:n :: 最⼩的最后访问⽇期 - 排除⾃ n 以来使⽤的⽂件。
(If n < 1900 then n = n days, else n = YYYYMMDD date)。
/XJ :: 排除接合点。
(默认情况下通常包括)。
/FFT :: 假设 FAT ⽂件时间(2 秒粒度)。
/DST :: 弥补 1 ⼩时的 DST 时间差。
/XJD :: 排除⽬录的接合点。
/XJF :: 排除⽂件的接合点。
3)重试选项:
/R:n :: 失败副本的重试次数: 默认为 1 百万。
/W:n :: 两次重试间的等待时间: 默认为 30 秒。
/REG :: 将注册表中的 /R:n 和 /W:n 保存为默认设置。
/TBD :: 等待定义共享名称(重试错误 67)。
4)⽇志记录选项:
/L :: 仅列出 - 不复制、添加时间戳或删除任何⽂件。
/X :: 报告所有多余的⽂件,⽽不只是选中的⽂件。
/V :: ⽣成详细输出,同时显⽰跳过的⽂件。
/TS :: 在输出中包含源⽂件的时间戳。
/FP :: 在输出中包含⽂件的完整路径名称。
/BYTES :: 以字节打印⼤⼩。
/NS :: ⽆⼤⼩ - 不记录⽂件⼤⼩。
/NC :: ⽆类别 - 不记录⽂件类别。
/NFL :: ⽆⽂件列表 - 不记录⽂件名。
/NDL :: ⽆⽬录列表 - 不记录⽬录名称。
/NP :: ⽆进度 - 不显⽰已复制的百分⽐。
/ETA :: 显⽰复制⽂件的预期到达时间。
/LOG:⽂件:: 将状态输出到⽇志⽂件(覆盖现有⽇志)。
/LOG+:⽂件:: 将状态输出到⽇志⽂件(附加到现有⽇志中)。
/UNILOG:⽂件:: 以 UNICODE ⽅式将状态输出到⽇志⽂件(覆盖现有⽇志)。
/UNILOG+:⽂件:: 以 UNICODE ⽅式将状态输出到⽇志⽂件(附加到现有⽇志中)。
/TEE :: 输出到控制台窗⼝和⽇志⽂件。
/NJH :: 没有作业标头。
/NJS :: 没有作业摘要。
/UNICODE :: 以 UNICODE ⽅式输出状态。
5)作业选项 :
/JOB:作业名称:: 从命名的作业⽂件中提取参数。
/SAVE:作业名称:: 将参数保存到命名的作业⽂件
/QUIT :: 处理命令⾏后退出(以查看参数)。
/NOSD :: 未指定源⽬录。
/NODD :: 未指定⽬标⽬录。
/IF :: 包含以下⽂件。
六 robocopy的GUI使⽤ [可以使⽤⽣成脚本]
下载:/zh-cn/magazine/2006.11.utilityspotlight.aspx ()
截图:
七实例:
1.复制源⽬录下所有⽂件及其⼦⽬录下所有⽂件(包括空⽬录)到⽬标⽬录
robocopy d:\work e:\back /e /yy
2.复制源⽬录下某种⽂件类型的⽂件到⽬标⽬录
robocopy d:\work e:\back *.txt *.doc *.bmp *.tif /s
3.复制时不包括某种类型的⽂件
robocopy d:\work e:\back /e /xf *.tmp *.bak
4.将⽂件夹移动到⽬标⽂件夹
robocopy d:\work e:\look /move /e
5.将操作过程输出为txt⽂件
robocopy d:\work e:\back /e /yy /log:123.txt
6.公司常⽤复制命令:将123⽬录下所有内容复制到456⽬录下,如果有⽂件重复则⾃动跳过,不需要加/yy参数 robocopy e:\123 f:\456 /e /tee /fp /v /np /ns /log+:copylog.txt
7 拷贝⽂件和⽬录且保留原来的时间属性(但是必须使⽤win7以后的版本才可以的)
robocopy.exe \\source\A \\dest\A /E /COPY:DAT /DCOPY:T
⼋也可以尝试使⽤richcopy [是可以设置多线程下载的,但是我试了下拷贝速度没有robocopy快]
下载:/en-us/magazine/2009.04.utilityspotlight.aspx?pr=blog ()
截图:
和
还可以使⽤fastcopy :
哈哈!
完!
=======================================================================================
Robocopy详解
说实话,Windows系统⾃带的复制功能不仅功能简单,⽽且定制性也不强,每每在对⼤量⽂件进⾏复制、移动、备份时,总少不了繁杂往复的操作。
不过幸好,微软意识到了这⼀点,为我们提供了⼀款很强⼒的复制备份⼯具:robocopy。
robocopy已被Windows Vista、Windows 7以及Windows Server 2008所集成,⽹上有⽹友制作的GUI,有兴趣的童鞋可以下载尝试⼀下。
另外,还在使⽤xp的童鞋直接在⽹上下载robocopy GUI吧。
运⾏⽅法有很多种,可以使⽤Win+R,在“运⾏”窗⼝中直接输⼊命令;或者先启动CMD命令提⽰符,在命令提⽰符窗⼝中输⼊命令;另外⼀种则是在⽂本编辑器(如:记事本)中输⼊相应命令,保存为*.bat批处理⽂件双击运⾏即可。
推荐使⽤批处理⽂件,这样⼦不仅⽅便了我们保存和修改,还⽅便了随时随地进⾏调⽤。
废话不多说,下⾯我们就开始实战练习。
今天⼀早,经理从Boss那⾥得到⼀个任务,说是公司要对⼀个项⽬制作⼀些⽂档,需要这个项⽬的⼀些原始资料。
于是,这个任务⼜从经理那⾥下派到我⼿上,按他的要求,需要尽可能快的从有关⽂件夹中取出合适的内容,并且复制到他U盘(盘符为H)Project⽂件夹中。
其具体要求是整理出:txt⽂本⽂件、Word⽂档、JPG、BMP、TIF图像。
他倒是说得简单,我⾯对的可是⼀个有上百个⼦⽂件夹⾄少5层⽬录结构的超级复杂⽂件⽬录树。
好吧,为了能顺利完成,放第⼀招:
第⼀招我想咋复制就咋复制
robocopy D:\Document H:\Project *.txt *.doc *.jpg *.bmp *.tif /s
说明:
参数"/s"的作⽤是“除了空⽂件夹以外的所有⼦⽬录”。
若要将⽂件夹下的所有⽂件(包括空⽂件夹)全部复制到⽬标⽂件夹,则上述命令应改为:
robocopy D:\Document E:\Home /e
此处参数"/e"的表⽰所有⼦⽬录(包括空⽂件夹)。
第⼀个任务很顺利就完成,经理把我叫到办公室,对我的执⾏效率表⽰出⾮常满意,我长出⼀⼝⽓,⽓刚出到⼀半,经理就开⼝了:“还要做个项⽬概览,你去把⼀⼆级⽬录下的内容再单独整理出来,还拷贝到我的U盘⾥。
”我晕……
刚才⼩试⽜⼑,现在见招拆招,放第⼆招:
第⼆招复制⽂件随⼼所欲
robocopy D:\Document H:\Project *.txt *.doc *.jpg *.bmp *.tif /s /lev:2
说明:
参数"/lev"表⽰复制的层级,⽐如指定为2级,则两层⽬录下的⽂件会被复制,更多级下⾯的则会被忽略。
经过⼀番折腾,经理对我的满意度算是越来越⾼了,但对于他⽽⾔,总是有解决不尽、也永远搞不清的问题,诸如他会在家选择⽂件之后按下Ctrl+C,然后第⼆天来公司在公司电脑上猛按Crtl+V。
哎,这不,他⼜有新问题了。
经过刚才⼏次复制,他那弱⼩的U盘已经经不起更多折腾,肚⼦塞的满满的,可是还有⼤批⽂件需要⽤U盘拷贝,经理他就挠着头,想啊想,想啊想,终于想出⼀个办法来,先把不⽤的⽂件拷贝到计算机上,再把垃圾⽂件删除掉!嗯~还真是个好办法,于是乎,他⼜叫来了我……
同样,怕什么~~~接着放招:
第三招垃圾⽂件我可不要
其实实现这个要求很简单,直接在复制的过程中筛选出垃圾⽂件并且deny掉就好啦~
⽤如下命令吧:
robocopy H:\Work D:\Work /e /xf *.tmp *.bak
说明:
参数"/xf"意为指定不执⾏复制操作的⽂件类型,⽂件名⽀持通配符。
如果使⽤参数"/xd",则表⽰排除指定的⽂件夹。
⼜⼀项任务顺利完成,我哼着⼩曲回到了⾃⼰的办公室,安安稳稳的坐在椅⼦上听起⾳乐。
⼀个上午连续被经理所赞赏,那⼼情叫⼀个好啊,索性就⽤⾳箱吧~动⼈的旋律不仅飘到我⽿朵⾥,也到了隔壁同事⽿朵⾥,这不,隔壁同事⼜来了,他表⽰对我艺术审美很是赞赏,同时,还想拷⾛我所有⾳乐⽂件……
天,我的⾳乐⽂件夹有好⼏个G之⼤,⽽他拿来的U盘才有碎碎的2G,这可怎么是好呢~
想来想去,他觉得只好忍痛割爱,不要MV了。
只是还有⼀个问题,如果⽤⽂件类型排除,那将⾮常⿇烦,在这种情况下,我选择了以下⽅法:
第四招⼤⽂件我也不要
robocopy F:\music H:\music /e /max:10000000
说明:
使⽤参数"/max",可以选择⽂件⼤⼩上限,其单位为byte。
如果是"/min",限定了⽂件⼤⼩的下限。
两个参数可以同时使⽤,限制出所需复制的⽂件⼤⼩的范围。
复制指定修改时间的⽂件
在⽇常使⽤中,免不了要通过⽂件修改时间筛选出最近的⽂件。
如何实现此功能?通过下列命令:
robocopy D:\Document H:\Project /maxage:5
此条命令的意思为将D:Document下修改时间在5天内的⽂件复制到H:Project下。
参数"/maxage"表⽰距离今天最远的修改时间,凡是修改时间⽐这个限制还要早的那些⽂件都不会被复制。
参数"/maxage"可以接受的字符有数字,或者是⽇期,表⽰天数时数字要⼩于1900,表⽰⽇期时需要使⽤"YYYYMMDD"格式。
另外⼀个与之相对应的参数是"/minage",表⽰距离今天最近的修改时间限制,⽐这个时间新的⽂件将不被复制。
因此,我们在实⽤环境下可以利⽤"/maxage"和"/minage"来共同限制时间范围。
如下例:
robocopy D:\Document H:\Project /maxage:5 /minage:1
此命令则将欲复制的⽂件范围限定在修改时间在除今天意外的5天以内(是不是有点绕⼝……我实在描述不清楚了,各位看官请意会吧)。
完全拷贝
在Windows默认的复制粘贴下,如果已存在⼀个同名⽂件夹,系统会进⾏增量复制,⽽不会进⾏⽂件夹的替换操作。
如果我们需要使⽬标⽂件夹与源⽂件夹完全相同,也就是说在复制的同时也删除在⽬标⽂件夹⾥存在但源⽂件夹⾥并没有的⽂件。
则需要使⽤以下命令:
robocopy D:\Document H:\Project /mir
参数"/mir"的作⽤等同于"/purge /e","/purge"表⽰清理⽬标⽂件夹内有⽽源⽂件夹⾥没有的⽂件和⽂件夹。
通过这个命令,能保证源⽂件夹和⽬标⽂件夹在结构与内容上完全相同。
此参数对于创建镜像备份时是⾮常有⽤的。
移动⽂件
需要移动⽂件夹,也就是剪贴,需要使⽤另外两个参数,先看下例:
robocopy D:\Document H:\Project /move /e
参数"/move"意为移动,⽽"/e"则表⽰复制所有⼦⽬录包括空⽂件夹(这⼀点上篇⽂章有讲)。
只拷贝⽂档结构
有时我们只需要拷贝⼀个多级⽬录的⽬录树,或者说只需要它的结构,⽽不需要它的内容,参考如下命令:
robocopy c:\windows /s /create c:\empty\windows
这样,我们就创建了整个Windows⽂件夹的⽬录结构。
其中,使⽤了"/creat"参数,此参数作⽤即为⽣成空的⽂件结构。
还有另外⼀种剑⾛偏锋的实现⽅法:
robocopy c:\windows c:\empty\windows /e /lev:5 /minage:19000101
这是使⽤了普通的复制⽅法,指定5层⽬录,但是却限制了⼀个机器上不可能有的⼀个⽂件修改⽇期。
这样,robocopy就只会拷贝⾛⽬录结构,因⽆⽂件符合其修改时间限制,因⽽不会有⽂件被复制。
不复制隐藏⽂件
个别情况下⽂件夹中存在隐私内容,在复制的同时⼜希望被ignore,因为robocopy⽀持属性操作,所以只需调⽤相关参数即可。
见下例:
robocopy D:\Photo H:\Photo /e /xa:h
参数"/xa:h"表⽰将具有隐藏属性的排除出欲复制的范围,与之相对应的是参数"/ia",表⽰只复制包括指定属性的⽂件。
可⽤的属性有;R只读、A存档、S系统、H隐藏等。
robocopy C:\windows F:\WindowsSysFile /ia:rs
此命令只会将具有只读属性的系统⽂件复制,⽽不会操作其他⽂件。
上⽂说道,robocopy具有对属性操作的能⼒,因此,在复制的同时也可以指定⽂件属性。
使⽤参数"/A+"与"/A-",功能分别是将给定的属性添加到复制⽂件,以及,从复制⽂件中删除给定的属性。
例如:
robocopy C:\windows F:\WindowsSysFile /e /A-:rsh
这样,不仅将所有⽂件进⾏了复制,也删除了诸如只读、系统、隐藏等属性,⽅便了我们在复制之后对⽂件进⾏操作和编辑等。
=======================================================================================
使⽤RoboCopy 命令
经常进⾏⽂件管理操作的朋友们,不满意于Windows系统内置的复制功能,因为它太龟速了。
于是⼤家就使⽤FastCopy、TeraCopy之类的软件来加速复制,但是你是否知道Windows 7已经内置快速复制的功能?
这项功能就是RoboCopy,它是⼀个命令⾏的⽬录复制命令,⾃从Windows NT 4.0 开始就成为windows 资源⼯具包的⼀部分,然后在Windows Vista、Windows 7和 Windows Server 2008采⽤作为标准的功能。
Windows 7的此项功能也得到升级——已经可以⽀持多线程了,这就意味着可以⼤⼤提升复制速度。
⽽且该功能可以创建两个⽂件结构完全的镜像副本⽽不复制任何不需要的重复⽂件,同时还允许您保留所有相关⽂件信息,包括⽇期和时间戳、安全访问控制列表(ACL))等等。
下⾯先看看这条命令的⽤法吧:
命令语法:ROBOCOPY source destination [file [file]…] [options]
源:源⽬录(驱动器:\路径或\\服务器\共享\路径)
⽬标:⽬标⽬录(驱动器:\路径或\\服务器\共享\路径)
⽂件:要复制的⽂件(名称/通配符: 默认为 "*.*")
复制选项
/S:复制⼦⽬录,但不复制空的⼦⽬录。
/E:复制⼦⽬录,包括空的⼦⽬录。
/LEV:n:仅复制源⽬录树的前 n 层。
/Z:在可重新启动模式下复制⽂件。
/B:在备份模式下复制⽂件。
/ZB:使⽤可重新启动模式;如果拒绝访问,请使⽤备份模式。
/EFSRAW:在 EFS RAW 模式下复制所有加密的⽂件。
/COPY:复制标记:: 要复制的⽂件内容(默认为 /COPY:DAT)。
(复制标记: D=数据,A=属性,T=时间戳)。
(S=安全=NTFS ACL,O=所有者信息,U=审核信息)。
/DCOPY:T:复制⽬录时间戳。
/SEC:复制具有安全性的⽂件(等同于 /COPY:DATS)。
/COPYALL:复制所有⽂件信息(等同于 /COPY:DATSOU)。
/NOCOPY:不复制任何⽂件信息(与 /PURGE ⼀起使⽤⽣效)。
/SECFIX:修复所有⽂件的⽂件安全性,即使是跳过的⽂件。
/TIMFIX:修复所有⽂件的⽂件时间,即使是跳过的⽂件。
/PURGE:删除源中不再存在的⽬标⽂件/⽬录。
/MIR:镜像⽬录树(等同于 /E 和 /PURGE)。
/MOV:移动⽂件(复制后从源中删除)。
/MOVE:移动⽂件和⽬录(复制后从源中删除)。
/A+:[RASHCNET]:将给定的属性添加到复制⽂件。
/A-:[RASHCNET]:从复制⽂件中删除给定的属性。
/CREATE:仅创建⽬录树和长度为零的⽂件。
/FAT:仅使⽤ 8.3 FAT ⽂件名创建⽬标⽂件。
/256:关闭超长路径(> 256 字符)⽀持。
/MON:n:监视源;发现多于 n 个更改时再次运⾏。
/MOT:m:监视源;如果更改,在 m 分钟时间内再次运⾏。
/RH:hhmm-hhmm:运⾏⼩时数 – 可以启动新副本的时间。
/PF:以每个⽂件(⽽不是每个步骤)为基础检查运⾏⼩时数。
/IPG:n:程序包间的间距(ms),以释放低速线路上的带宽。
/SL:对照⽬标复制符号链接。
/MT[:n]:使⽤ n 个线程进⾏多线程复制(默认值为 8)。
n 必须⾄少为 1,但不得⼤于 128。
该选项与 /IPG 和 /EFSRAW 选项不兼容。
使⽤ /LOG 选项重定向输出以便获得最佳性能。
⽂件选择选项
/A:仅复制具有存档属性集的⽂件。
/M:仅复制具有存档属性的⽂件并重置存档属性。
/IA:[RASHCNETO]:仅包含具有任意给定属性集的⽂件。
/XA:[RASHCNETO]:排除具有任意给定属性集的⽂件。
/XF ⽂件[⽂件]…:排除与给定名称/路径/通配符匹配的⽂件。
/XD ⽬录[⽬录]…:排除与给定名称/路径匹配的⽬录。
/XC:排除已更改的⽂件。
/XN:排除较新的⽂件。
/XO:排除较旧的⽂件。
/XX:排除多余的⽂件和⽬录。
/XL:排除孤⽴的⽂件和⽬录。
/IS:包含相同⽂件。
/IT:包含已调整的⽂件。
/MAX:n:最⼤的⽂件⼤⼩ – 排除⼤于 n 字节的⽂件。
/MIN:n:最⼩的⽂件⼤⼩ – 排除⼩于 n 字节的⽂件。
/MAXAGE:n:最长的⽂件存在时间 – 排除早于 n 天/⽇期的⽂件。
/MINAGE:n:最短的⽂件存在时间 – 排除晚于 n 天/⽇期的⽂件。
/MAXLAD:n:最⼤的最后访问⽇期 – 排除⾃ n 以来未使⽤的⽂件。
/MINLAD:n:最⼩的最后访问⽇期 – 排除⾃ n 以来使⽤的⽂件。
(If n < 1900 then n = n days, else n = YYYYMMDD date)。
/XJ:排除接合点。
(默认情况下通常包括)。
/FFT:假设 FAT ⽂件时间(2 秒粒度)。
/DST:弥补 1 ⼩时的 DST 时间差。
/XJD:排除⽬录的接合点。
/XJF:排除⽂件的接合点。
重试选项
/R:n:失败副本的重试次数: 默认为 1 百万。
/W:n:两次重试间的等待时间: 默认为 30 秒。
/REG:将注册表中的 /R:n 和 /W:n 保存为默认设置。
/TBD:等待定义共享名称(重试错误 67)。
⽇志记录选项
/L:仅列出 – 不复制、添加时间戳或删除任何⽂件。
/X:报告所有多余的⽂件,⽽不只是选中的⽂件。
/V:⽣成详细输出,同时显⽰跳过的⽂件。
/TS:在输出中包含源⽂件的时间戳。
/FP:在输出中包含⽂件的完整路径名称。
/BYTES:以字节打印⼤⼩。
/NS:⽆⼤⼩ – 不记录⽂件⼤⼩。
/NC:⽆类别 – 不记录⽂件类别。
/NFL:⽆⽂件列表 – 不记录⽂件名。
/NDL:⽆⽬录列表 – 不记录⽬录名称。
/NP:⽆进度 – 不显⽰已复制的百分⽐。
/ETA:显⽰复制⽂件的预期到达时间。
/LOG:⽂件:将状态输出到⽇志⽂件(覆盖现有⽇志)。
/LOG+:⽂件:将状态输出到⽇志⽂件(附加到现有⽇志中)。
/UNILOG:⽂件:以 UNICODE ⽅式将状态输出到⽇志⽂件(覆盖现有⽇志)。
/UNILOG+:⽂件:以 UNICODE ⽅式将状态输出到⽇志⽂件(附加到现有⽇志中)。
/TEE:输出到控制台窗⼝和⽇志⽂件。
/NJH:没有作业标头。
/NJS:没有作业摘要。
/UNICODE:以 UNICODE ⽅式输出状态。
作业选项
/JOB:作业名称:从命名的作业⽂件中提取参数。
/SAVE:作业名称:将参数保存到命名的作业⽂件
/QUIT:处理命令⾏后退出(以查看参数)。
/NOSD:未指定源⽬录。
/NODD:未指定⽬标⽬录。
/IF:包含以下⽂件。
这么多的命令我不会⽤怎么办?你可以到微软推出的Robocopy GUI,它提供交互界⾯使得使⽤简化不少:
【复制测试】
我将⼀共达7.9G的《阿凡达》⾼清电影⽂件,通过Robocopy、系统内置的复制功能和Terecopy三项分别复制到相同的⽬的地,复制过程中基本没有进⾏其他系统操作,得出复制完成所需要的时间并⽐较
1、通过Robocopy命令复制⽂件,使⽤最⼤线程128,花费的时间为6分02秒
2、使⽤系统内置的⽂件复制功能,使⽤秒表计时显⽰时间为6分22秒
3、使⽤Terecopy复制,显⽰使⽤5分32秒
测试速度⼤⼩结果:Terecopy > Robocopy命令 > 内置复制功能,可见Robocopy与专业的复制软件在速度上有⼀定的差距,⽽且易⽤性⽐较差。
但是在没有安装其他复制软件的情况下,要想快速复制⼤量的⽂件,Robocopy命令还是⼀个不错的选择。
----------------------------------------------------
----------------【例⼦】-------------------
实例⼀:⽂件,想怎么复制就怎么复制
[实现效果]
随时将源⽂件夹中的纯⽂本(TXT)、Word⽂档(DOC)还有BMP、TIF图像⽂件复制到⽬标⽂件夹中
,这是在“资源管理器”中直接拖放所做不到的。
[简单命令]
robocopy d:\work e:\back *.txt *.doc *.bmp *.tif /s
[参数讲解]
将d:\work⽂件下的TXT、DOC、BMP、TIF复制到e:\back⽂件夹,其他⽂件则不复制。
/s是表⽰包括
除空⽂件下的所有⼦⽬录,如果没有则仅复制d:\work下的⽂件⽽不包括⼦⽬录。
[举⼀反三]
(1)如果要将⽂件夹下的所有⽂件包括空⽂件夹全部复制到⽬标⽂件夹,命令为:robocopy
d:\work e:\back /e
/e表⽰复制所有⼦⽬录包括空⽂件夹。
(2)如果只想复制两个层级内的⽂件(再下的层级⾥的⽂件则不拷贝),输⼊命令:robocopy
d:\work e:\back /e /lev:2
/lev:2表⽰复制的层级,⽐如指定层级后d:\work\soft(⼆级)下的⽂件会被复制,⽽
d:\work\soft\office(***)下的⽂件则不被复制。
实例⼆:垃圾⽂件不复制
[实现效果]在备份数据时,不可避免会将类似于*.bak、*.tmp的垃圾⽂件也复制到⽬标⽂件夹,⽤
Robocopy可以将我们经常碰到的垃圾⽂件在拷贝时就清理出家门,从⽽⽣成⼀个⼲⼲净净的⽂件夹。
[简单命令]
robocopy d:\work e:\back /e /xf *.tmp *.bak
[参数讲解]
/xf为指定不执⾏复制操作的⽂件类型,后⾯的⽂件名⽀持通配符。
如果参数为/xd,则表⽰排除后
⾯指定的⽂件夹。
实例三:⼤⽂件我不要
[实现效果]
复制的时候,为了节省时间,需要将⼀些⼤⽂件暂时不拷贝,等有空闲时间时,再执⾏复制操作不
迟。
[简单命令]
robocopy d:\work e:\back /e /max:6000000
[参数讲解]
仅复制不⼤于6000000bytes的⽂件,/max:后直接接数值,数值单位为byte。
如果是/min:1000,则
复制不⼩于1000bytes的⽂件。
两个参数可以同时使⽤,界定复制⽂件⼤⼩的范围。
实例四:只要这⼀周修改的⽂件
[实现效果]
这⼀周处理了哪些⽂档?编辑了那些⽂件?将这些修改了的⽂档复制到⼀个⽂件夹下,再好好回味
⼀下。
本例就是要将d:\work中最近七天内新建或修改了的TXT、DOC、XLS、PPT等⽂档,复制到e:\look
⽬录下。
[简单命令]
robocopy d:\work e:\look /s *.txt *.doc *.xls *.ppt /maxage:7
[参数讲解]
/maxage:表⽰最远修改时间的,修改时间⽐这个还要旧的⽂件将不会被复制。
/maxage:后可接数字
,也可以接⽇期,数字⼩于1900时表⽰天数,否则就得⽤YYYYMMDD来表⽰具体的⽇期
如/maxage:20040210表⽰2004年2⽉10⽇后被修改的⽂件才允许复制。
与之相对应的参数
是/minage,表⽰最近修改时间,⽐这个时间新的⽂件将不被复制。
[举⼀反三]
robocopy d:\work e:\look /s *.txt *.doc *.xls *.ppt /maxage:7 /minage:1
则表⽰近七天内除今天外修改的⽂件才允许被复制。
与修改时间相对的还有最近访问时间,/maxage指最远访问时间,⽐这个时间⽼的⽂件将不被复制。
/minage是指最近访问时间,⽐这个时间新的⽂件将不被复制。
实例五:我的⽂档排排站
[实现效果]
上例中复制时,所有的⽂档都会带来本⾝的路径信息,⽂档是会将其所存放的⽂件夹也复制过来。
这给我们的翻阅查看带来很多不便,得单击多层⽂件夹才能看到⽂件,能不能将所有的⽂档直接复制到
⼀个⽂件夹下呢?这个需要⽤XXCOPY来实现。
[简单命令]
xxcopy d:\work e:\look /s /in*.txt /in*.doc /sg /yy /da:2004-02-02 /DB:2004-02-
10/DA:1997-01-01
[参数讲解]
此命令将d:\work中从2004年2⽉2⽇到2⽉10⽣成的 TXT、DOC⽂件全部直接复制到e:\look⽬录下,
不新建⼦⽂件夹,打开e:\look就能看到所有⽂件。
XXCOPY和Robocopy的语法参数还是有较⼤差异的,表
⽰指定⽂件类型时,XXCOPY会⽤/in*.*,表⽰⽇期时/da为在指定时间后,/db为在指定时间前,⽇期的
表⽰为YYYY- MM-DD。
另外,/sg表⽰复制⽂件到同⼀⽂件夹,/yy表⽰在所有要求⽤户应答的地⽅都⾃动认为是Yes,在执
⾏过程中不需要⽤户⼲预。
实例六:完全克隆
[实现效果]
我们⼀般采取的复制⽅式默认是增量复制,即根据⽂件的⼤⼩、修改时间将源⽂件夹⾥的内容向⽬
标⽂件夹复制,久⽽久之,⽬标⽂件夹⾥就可能存在⼤量源件夹⾥早已经删除且⽆⽤的⽂件和⽂件夹。
如果要让备份完全相同,即拷贝时删除在⽬标⽂件夹⾥存在但源⽂件夹⾥并没有的⽂件。
[简单命令]
robcopy d:\work e:\look /mir
[参数讲解]
/mir的作⽤等同于/purge /e,/purge表⽰清理⽬标⽂件夹有⽽源⽂件夹⾥没有的⽂件(夹)。
通过
这个命令,能保证源⽂件夹和⽬标⽂件夹结构与⽂件完全相同。
这在创建镜像备份时,⾮常有⽤。
实例七:移动⽂件
[实现效果]
我们前⾯讲的都是复制,如果我们要将⽂件夹移动到⽬标⽂件夹,如何操作呢?
[简单命令]
robocopy d:\work e:\look /move /e
[参数讲解]
其中,/move表⽰移动。
实例⼋:我只要⽂件夹⾻架
[实现效果]
笔者的⼯作需要周期性地新建和整理⼤量的⽂件夹,每次的⽂件夹结构⼀样,只是⽂件不尽相同。
如果是以前,就得⼀个⼀个简单重复去制作,⽽现在就不需要了。
Robocopy和XXCOPY可以让你轻松实现复制⽂件夹结构。
[简单命令]
xxcopy d:\work e:\mystruct /t /yy /dl3
[参数讲解]
将d:\work的三层⽂件夹结构复制到e:\mystruct中。
其中/t表⽰创建⽂件夹结构,/dl3表⽰复制的
⽂件夹结构为***,数字可以⾃⾏输⼊,如果没有此参数,默认建⽴整个⽂件夹结构。
Robocopy创建⽂件夹相对要⿇烦⼀些,/create参数不仅要创建结构,还要创建⽂件夹下所有⽂件的
0字节⽂件,并⾮真正的结构,我们只好剑⾛偏锋了。
robocopy d:\work e:\mystruct /e /lev:3 /minage:19000101
为Robocopy指定⼀个不可能创建⽂件的时间,因为有参数/e 的作⽤,虽然没有⽂件符合要求(你机器⾥没有早于1900年1⽉1⽇的⽂件),但Robocopy还是会忠实地创建⽂件夹,这样就达到了⽣成⽂件夹结构的⽬的。
另外,/lev:3表⽰复制⽂件夹的层级,同样可以⾃⾏输⼊。
实例九:隐藏⽂件我不要
[实现效果]
在默认状态下,隐藏⽂件是并不显⽰的,但在复制的过程中,它还会随着⽂件夹⼀起被复制。
可不
可以将这些隐藏⽂件排除在复制范围之外呢?
[简单命令]
robocopy d:\work e:\back /e /xa:h
[参数讲解]
Robocopy⽀持对属性进⾏操作。
上⾯的命令将复制源⽂件夹中全部⽂件,但全部具有隐藏属性的⽂
件将不会被复制。
/xa:h,表⽰将具有隐藏属性的排除出复制范围,与之相对应的是/ia,表⽰包括只对
拥有指定属性的执⾏操作。
属性有R:只读,A:存档,S:系统,H:隐藏等⼏种供选择。
[举⼀反三]
(1)此外,Robocopy还有/a+、/a-等参数对⽂件属性进⾏操作,分别表⽰在⽂件被拷贝后为⽂件添加、去除某属性。
robocopy d:\work e:\back /ia:rs
表⽰只复制具有只读和系统属性的⽂件。
(2)robocopy c: d: /-a:rsh
表⽰将⽂件拷贝到D盘后,将拷贝⽣成的⽂件的只读、系统、隐藏属性去掉,以⽅便查看和修改。
实例⼗:NTFS权限跟着⾛
[实现效果]
在使⽤Windows 2000、Windows XP时,在多⽤户使⽤⼀台电脑时或管理服务器时,经常要为⽂件夹指定⽤户访问和修改的权限(如图1,需要分区为NTFS)。
不过,⽤⼀般的复制⽅式⽆法保留我们设置的权限,这在服务器备份时意味着我们得重新设置⽤户权限。
不过,Robocopy可以让我们在复制⽂件的时候,将属性、⽤户权限、所有者都可以⼀并复制到⽬标⽂件夹中。
备份双友邻精彩5例-Robocopy和xxcopy全掌握
[简单命令]
robocopy d:\work e:\back /e /copyall
[参数讲解]
/copyall等于/copy:datsou,表⽰将所有源⽂件夹的信息复制到⽬标⽂件夹中,其中D:⽂件数据,A:⽂件属性,T:时间信息,S:权限信息,O:所有者信息,U:审核信息。
[举⼀反三]
如果源⽂件夹的权限被修改,需要同样更新⽬标⽂件夹的权限时,我们不必再重复复制,只需输⼊robocopy d:\work e:\back /is /copy:sou
如果没有/copy参数,默认为/copy:dat,没有后⾯三项的信息。
实例⼗⼀:集中备份到⽂件服务器
[实现效果]
希望每天能够把相应数据备份到⽂件服务器上,以免数据丢失。
[简单命令]
robocopy d:\work \ctips_serverarticlesshare /e /copyall
[参数讲解]
从中可以看出,robocopy完全⽀持⽂件服务器共享⽂件夹数据的拷贝。
[举⼀反三]
(1)如果我们创建了⼀个环境变量,如定义%databack%为\ctips_serverarticles\back,那只要输
⼊相应的命令:robocopy d:\work %databack% /e /copyall 即可把d:\work下的⽂件全部备份到。