windows下的拷贝利器robocopy
robocopy
xxcopy
http://www.cnblogs.com/zhanglei1371/p/6724167.html
【转载】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下的文件全部备份到
\ctips_serverarticles\back下。当然,如果\ctips_serverarticles\back空间不够时,只要更换环境
变量的值到其他文件夹,如\ctips_serverarticles ewback,上述命令无需更改就可以反数据拷贝到新
的文件夹中。
(2)如果你只想把数据备份到共享文件夹中以你的机器名为名字的共享文件夹中,使用xxcopy会更
方便:xxcopy d:\work \ctips_serverarticles/$HOST$ /e /yy 其中/$HOST$表示你的机器名,如你的
机器名为CTIPS_SYJ,那会把d:\work 文件夹下的文件拷贝到\ctips_serverarticles\CTIPS_SYJ文件夹
下。如果你的机器名为CTIPS_MLB,那执行上述命令后就可以把d:\work 文件夹下的文件拷贝到
\ctips_serverarticles\CTIPS_MLB文件夹下。由于同局域网内的机器名字不会相同,执行上述命令后就
可以保证数据不会被拷贝到同一文件夹下。
实例十二:一动就备份
[实现效果]
有些工作内容非常重要,需要时时刻刻注意备份,可是我们哪里有这么好记性和耐性呢?这事,还
是交给 Robocopy来做吧。Robocopy能时时监视要备份的文件夹,只要文件夹修改到一定时间和程序,
Robocopy就会立即开始备份。它会一直监视文件夹,除非用户自己终止。
[简单命令]
robocopy d:\work e:\back /e /copyall /mot:1 /mon:2
[参数讲解]
上述命令表示复制文件夹所有信息到目标文件夹并进行监视。执行此命令后,命令提示符窗口如图2
所示。一旦时间过了一分钟,并且源文件夹至少有或2处以上的修改,Robocopy就会自动启动另一个进程
,执行上述备份操作。Robocopy能监视源文件夹结构、文件和文件夹名称、大小、最后修改时间,在这
里,甚至连属性和权限等信息被修改时,Robocopy也会记为修改次数。
备份双友邻精彩5例-Robocopy和xxcopy全掌握
/mot后接的是时间(分钟),是指Robocopy执行操作的最短时间;/mon后接的是最少文件修改个数
。在监视过程中,会自动记录时间和修改的次数,只有同时符合以上两个条件时,Robocopy才开始执行
,执行完成后,这两个数据会自动清零,并重新开始监视文件夹,除非用户关闭命令提示符窗口或按下
Ctrl+Break键。
[举一反三]
如果你要开机就监视并备份相应文件夹,则可以把上述命令放到“启动”组中。
实例十三:不到时间不备份
[实现效果]
复制的过程总会占用系统资源,如果能设置在自己不在电脑边上的时候开始复制备份,就会方便得
多。比如,每天5:50下班,希望下班后,到达6点时,Robocopy自动开始备份相应数据。
[简单命令]
robocopy d:\work e:\back /e /rh:1800-1830
[举一反三]
运行后,复制操作将会等待至指定时间开始(如图3)。其中,RH格式为/RH:hhmm-hhmm,指定
Robocopy开始的时间段,在这个时间段外,拷贝会被暂停。时间为24小时格式,4个数字长,从0000到
2359,而且两个数字不能相同。
备份双友邻精彩5例-Robocopy和xxcopy全掌握
实例十四:计划任务备份
以上的到时间备份、监视文件夹备份方式,每次重启系统会都会要重新执行以上命令,还远远不够
智能,如果能和Windows的计划任务配合,所有问题就迎刃而解了。以我们要在每天10:00自动调用
Robocopy开始监视备份文件夹为例,说一说计划任务与Robocopy的携手。
第一步:新建BAT文件
新建一个批处理文件autobak.bat,输入如下命令
robocopy d:\work e:\back /e /copyall /mot:1 /mon:2
第二步:创建计划任务
选择“开始→设置→控制面板”,双击“任务计划”图标。把autobak.bat批处理文件拖放到“任务计划
”窗口,然后双击新生成的autobak.bat图标,在弹出窗口中设置其属性。
第三步:设置开始时间
切换到“日程安排”标签,单击“任务计划”下拉列表框,从中选择“每天”,“开始时间”设置为
10:00,单击“高级”可以设置起止的日期(如图4)。
通过上述设置后,到了设置的时间,机器就会自动备份执行批处理文件,自动备份并监视文件夹。
备份双友邻精彩5例-Robocopy和xxcopy全掌握
实例十五:清理文件也拿手
除了一般的复制功能,XXCOPY还有文件清理功能,可以将不需要的文件快速清理出硬盘。以下命令
会清除文件和文件夹,请先建立测试文件夹掌握其操作后再对文件夹进行操作。
1.清除所有无用文件
xxcopy d:\work*.tmp /s /h /yy /rs
/rs表示不复制而直接从源文件夹中删除指定文件,/h表示指定隐藏和系统文件。
2.清除文件夹
xxcopy c: emp /rmdir /db:2002-01-01 /yy
删除c: emp中在2002年1月1日前的修改的文件夹。
3.删除空文件夹
xxcopy c: emp /rmdir /sz:0 /yy
删除c: emp下所有空文件夹,/sz:0指定大小为0的文件(夹)。
4.删除0字节文件
xxcopy c: emp*.* /sz:0 /s /h /yy /rs
通过以上四种方式的组合,我们可以轻松实现对文件及文件夹的整理工作。
最后,还有一几个小技巧告诉你,希望能有利于你更好地使用XXCOPY和Robocopy。
★将命令变成任务
在Robocopy加上“/save:任务名”可以将当前操作记录为任务文件,通过“/job:任务名”就可以方便调
用,不需要再输入一长串的命令了。此任务文件可以用纯文本编辑器(如记事本)来编辑。
★将复制备份过程录下来
默认情况下,Robocopy的操作过程只是在命令提示符中显示,我们可以让它把操作过程输出为TXT文件,
加上“/log:文件名.txt”即可。
Robocopy命令实现文件服务器每日镜像备份/增量备份操作
http://blog.51cto.com/xifanliang/2111066
Robocopy是微软推出的可靠文件复制服务,经过测试,比xcopy更加优秀,特别是在复制ACL及文件时间戳方面。
免费同步软件通常在ACL同步这一块比较薄弱,而付费软件复杂操作,我们可以使用robocopy结合任务程序做到日常备份和增量备份。
Tips:
/dcopy:T 可以复制目录时间戳。
如果未加则文件夹时间为复制发生的时间点。如果你希望时间戳和源目录一直,可以再执行一次命令,加/dcopy:T。
/log:日志
测试的时候运行的话 加 /tee命令,这样既能
/log+ 的话持续写入同一个日志。
注:windows7 or windows2008R2中 /dcopy只支持 /dcopy:T
镜像同步 Left >Right
robocopy "c:\abc" "D:\abc" /mir /copyall /dcopy:DAT /mt:8 /z /xa:sht /a-:h /np /ts /w:1 /r:1 /XD "System Volume Information" /XD $RECYCLE.BIN /a-:H /log:H:\Log\Robocopy\RBLog.txt /tee
效果是将c盘的abc文件夹(包括abc本身的一切属性),同步到D盘ABC文件夹内(D盘可以没有abc文件夹,会自动创建,如果已经存在,会覆盖abc的ACL),包括abc内一切文件&文件夹,包括所有的ACL和文件属性,包括所有的文件创建,访问,修改时间属性。以8线程的速度运行。断点续传。并创建时间日志。
增量备份
近期备份修改过的文件
robocopy c:\abc d:\monday /mir /copyall /dcopy:DAT /w:1 /r:1 /maxage:1 /mt:8
效果是将C\abc 内一天内所有修改过的文件备份到Monday文件夹内。
加/z 支持断点续传
/xa:h只能排除隐藏文件,目前没有针对隐藏目录的命令。只能用/XD 目录名来排除隐藏目录。
robocopy c:\ d:\aaa /e /XD “System Volume Information“” /XD $RECYCLE.BIN /a-:H
对于robocopy针对根目录操作,需要去除System Volume Information和$RECYCLE.BIN这两个目录,用/XD参数,/A-:H清除隐藏文件夹属性.
@echo off
title Robocopy每日定期镜像备份脚本
echo.
echo 防呆:请修改此脚本配置并删除此行
pause >nul
:设置当前日期名
set y=%date:~0,4%%date:~5,2%%date:~8,2%
:备份频率 *
set pinlv=daily
:输入备份时间 格式"22:00" *
set time=20:00
:存日志、BAT、邮件插件 *
set weizhi=E:\RCMB%y%
:源路劲 *
set yuan="D:\abc"
:目标路劲 *
set mubiao="E:\abc"
:任务名字 *
set taskname=DailyMBCopy
:设置邮件
set from=abc@yeah.net
set user=abc
set pass=password
set to=12345@qq.com,678910@qq.com
set smtp=smtp.yeah.net
:邮件脚本形参
set a=%%y%%
set b=%%~dp0Log\Robocopy\RBLog%%y%%.txt
set c=%%~dp0Log\Blatmail\Maillog%%y%%.txt
set d=Robocopy镜像复制任务已经完成
set e=%from%
set f=%user%
set g=%pass%
set h=%to%
set i=%smtp%
if exist "%weizhi%" goto abc
md "%weizhi%"
md "%weizhi%\Log"
md "%weizhi%\Log\Robocopy"
md "%weizhi%\Log\Blatmail"
if exist "%mubiao%" goto abc
md "%mubiao%"
:创建复制脚本
echo @echo off >%weizhi%\robocopy_sc.bat
echo title 执行RCMB任务脚本ING >>%weizhi%\robocopy_sc.bat
:当凌晨0点开始到10点前,如果用网上的批处理命名方式,会有个空格。导致无法应用名字。
echo if "%%time:~0,2%%" lss 10 (set y=%%date:~0,4%%%%date:~5,2%%%%date:~8,2%%%%time:~1,1%%%%time:~3,2%%) else (set y=%%date:~0,4%%%%date:~5,2%%%%date:~8,2%%%%time:~0,2%%%%time:~3,2%%)>>%weizhi%\robocopy_sc.bat
:加/tee可以在执行命令的时候查看进度 /np关闭了文件百分比 /xa:sht 排除了系统,隐藏,临时文件 /mt:8启用8线程
echo robocopy %yuan% %mubiao% /mir /copyall /dcopy:DAT /mt:8 /z /xa:sht /a-:h /np /ts /log:%weizhi%\Log\Robocopy\RBLog%%y%%.txt ^>nul >>%weizhi%\robocopy_sc.bat
echo start "" %weizhi%\blatmail\blatmail.bat %a% %b% %c% %d% %e% %f% %g% %h% %i% ^>nul >>%weizhi%\robocopy_sc.bat
:创建一个查看并执行任务的测试脚本
echo @echo off >%weizhi%\RunRobocopySchtaskImmediately.bat
echo title 查看并执行该任务 >>%weizhi%\RunRobocopySchtaskImmediately.bat
echo echo ------------------------------------------------------------------------------------->>%weizhi%\RunRobocopySchtaskImmediately.bat
echo schtasks /query /tn %taskname% /v /fo list>>%weizhi%\RunRobocopySchtaskImmediately.bat
echo echo ------------------------------------------------------------------------------------- >>%weizhi%\RunRobocopySchtaskImmediately.bat
echo echo. >>%weizhi%\RunRobocopySchtaskImmediately.bat
echo echo. >>%weizhi%\RunRobocopySchtaskImmediately.bat
echo echo. >>%weizhi%\RunRobocopySchtaskImmediately.bat
echo echo 任意键立刻执行该任务 >>%weizhi%\RunRobocopySchtaskImmediately.bat
echo pause >nul >>%weizhi%\RunRobocopySchtaskImmediately.bat
echo schtasks /run /tn %taskname% >>%weizhi%\RunRobocopySchtaskImmediately.bat
echo echo 任意键退出 >>%weizhi%\RunRobocopySchtaskImmediately.bat
echo pause >nul >>%weizhi%\RunRobocopySchtaskImmediately.bat
echo exit >>%weizhi%\RunRobocopySchtaskImmediately.bat
:复制邮件程序
robocopy "%~dp0blatmail" "%weizhi%\blatmail" /e >nul
:创建任务
schtasks /create /sc %pinlv% /tn %taskname% /tr "%weizhi%\robocopy_sc.bat" /st %time% /rl highest /f
echo 任意键查看该任务
pause >nul
cls
echo.
echo.
echo.
echo -------------------------------------------------------------------------------------
schtasks /query /tn %taskname% /v /fo list
echo -------------------------------------------------------------------------------------
echo "按任意键继续"
pause >nul
goto abcd
:abcd
start "" %weizhi%
start "" %mubiao%
exit
:abc
cls
echo.
echo.
echo.
echo.
echo 目录已经存在 请手动删除后重试
echo 任意键退出
pause >nul
exit
另一个脚本为Robocopy每日定时增量备份。
详情见下载。
最后用Blatmail发送邮件。下载可见。
这是运行脚本后自动创建的目录文件夹。
脚本配置每日定时同步计划任务
效果如下
这是邮件效果:
附件中为Robocopy同步与增量同步脚本,Blatmail文件。
http://down.51cto.com/data/2446578
如果XP需要用到Robocopy软件,可以直接使用GUI版本的Robocopy,安装需要.net 2.0。
https://technet.microsoft.com/zh-tw/library/2006.11.utilityspotlight.aspx
如果希望用户点击后就改变“访问时间”,然后以访问时间来做robocoy的拷贝的话,可以参考如下文章。
“为什么文件属性中的“访问时间”和“修改时间”不一致?“
https://blog.csdn.net/D_R_L_T/article/details/74611126
windows下的拷贝利器robocopy的更多相关文章
- windows下命令行利器---Cmder(安装,中文乱码,配置右键菜单)
很多人都是在win下开发的,这样就会出现,经常需要命令行操作,而win cmd命令和linux命令有很大差异,导致大家很难受,今天给大家介绍一个win下命令行的利器-Cmder 一.先看一下它的容颜 ...
- webbrowser控件——Windows下的开发利器
首先说明,本人比较菜,做C++没多长时间. 刚开始用MFC写程序时,连个基本的字体都不会变(颜色.大小等), 索性干脆就啥也不改了,直接默认,界面就那样了,老子不管了. 心想这C++做个界面咋就那么麻 ...
- 解决windows下文件拷贝到ubuntu下文件名乱码的问题
sudo apt-get install convmv 解压zip文件: convmv -f gbk -t utf8 -r --notest *
- SecureCRT是最常用的终端仿真程序,简单的说就是Windows下登录UNIX或Liunx服务器主机的软件,本文主要介绍SecureCRT的使用方法和技巧
SecureCRT是最常用的终端仿真程序,简单的说就是Windows下登录UNIX或Liunx服务器主机的软件,本文主要介绍SecureCRT的使用方法和技巧 VanDyke CRT 和 VanDyk ...
- windows下安装python和依赖包的利器——Anaconda
在windows下安装python和很多依赖包,安装起来略为痛苦,可以使用python的大整合包——Anaconda Anaconda下载地址: http://continuum.io/downloa ...
- Windows 下有什么软件能够极大地提高工作效率
Windows 下有什么软件能够极大地提高工作效率?修改 可以推荐一些好的应用或者有趣的程序,能提升工作效率或者能让人眼前一亮的.修改 举报1 条评论 分享 • 邀请回答 按票数排序按时间排序 2 ...
- Windows下必备的开发神器之Cmder使用说明
诚言,对于开发码字者,Mac和Linux果断要比Windows更贴心;但只要折腾下,Windows下也是有不少利器的.之前就有在Windows下效率必备软件一文中对此做了下记载:其虽没oh-my-zs ...
- 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一)
相关连接导航 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一) 执行 $Gulp 时发生了什么 —— 基于 Gulp 的前端集成解决方案(二) 常用 Gulp 插件汇总 ...
- Windows下构建ASP.NET Core+Code First+Docker
背景介绍 本文将会示范如何在Windows系统下基于ASP.NET Core构建跨平台服务,并通过Docker容器运行发布. 首先说一下为什么选择这一套组合: 我本人和我们Code4Thought团队 ...
随机推荐
- 在Linux服务器上使用Vbox安装虚拟机
先去官网(www.virtualbox.org)上下载对应Linux系统的Vbox版本. 我这边用的是Oracle Linux 7系统(KDE安装) 使用rpm安装virtualbox 发现报错,按照 ...
- python爬虫教程实践1——安装scrapy
系统:macOS Sierra 10.12.6 python版本:3.6 1.安装homebrew(以前的环境配置中有介绍过) 官网:http://brew.sh/index_zh-cn.html 2 ...
- Verilog中的reg一定会被综合成寄存器么
对应于实际的数字电路中,如果该程序块描述的是时序逻辑,则该寄存器变量对应为寄存器:如果该程序块描述的是组合逻辑,该寄存器变量对应为硬件逻辑:如果该程序块描述的是不完全组合逻辑,那么该寄存器变量也可以对 ...
- vue+element-ui实现表格编辑(增加或删除行,删除单行或删除多行)
<template> <div class="app-container"> <div class="filter-container&qu ...
- python基础---列表生成器、迭代器等
一.列表生成式 用来创建list的表达式,相当于for循环的简写形式 语法: [表达式 for循环 判断条件] ''' 普通写法 ''' def test(): l= [] for i in rang ...
- 获取Xcode工程所有的类名
有的时候在需求中需要获取工程中所有的类名.例如在获取工程中继承某个类的列表. 核心代码如下: unsigned ; const char **classes = nil; Dl_info info; ...
- 开始Python学习
主要结合ArcGIS进行空间数据处理 Python最讨厌的就是版本问题了 ArcGIS 10.5安装的时候已经安装了python2.7.13,但后来又安装了python3.6.1. 环境变量的设置: ...
- 20个可用于商业用途的免费 CC0 授权的高分辨率图库
如今国人已经越来越重视版权了. 而用CC0 授权的图片不用担心版权的问题,那么什么是CC0授权呢?简单来说就是「公共领域贡献宣告」授权,当创作者在自身作品使用 CC0 授权时,代表于符合法律规定的最大 ...
- org.jsoup.Jsoup找不到jar包问题解决思路
今天在idea中导入项目,出现了这样的问题 通过idea的自带的导包功能,却提示找不到这个东西.于是就去maven仓库搜索这个咚咚 <!-- https://mvnrepository.com/ ...
- asp.net开启多线程异步处理
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { try { Thread categoryThrea ...