借助Windows系统自带的一个命令XCOPY,我们可以轻易地通过命令提示符窗口或用记事本,实现在窗口环境下菜单命令不便实现的文件复制或备份功能。 按类备份文件时,有时会涉及到不同文件夹中的不同文件根据某种条件备份的问题,如果涉及到连同文件夹结构也一同备份,这种情况下,我们往往需要借助于一些专用的备份工具来实现,设置起来也比较繁琐。实际上,无论是低版本的Windows XP操作系统,还是更高级的Windows 7、Windows 8系统,均提供一个强大的XCOPY命令程序,借助于这个命令,我们只需用命令提示符窗口直接输入一行命令,或用记事本写一句简单的BAT代码执行一下,就可以随心所欲地进行自己的文件备份,较之用窗口操作要效率高得多。
一、Xcopy参数介绍
命令格式:XCOPY source [destination] 一堆可选的参数
参数介绍:source 指定要复制的文件。 destination 指定新文件的位置和/或名称。 /A 只复制有存档属性集的文件, 但不改变属性。 /M 只复制有存档属性集的文件, 并关闭存档属性。 /D:m-d-y 复制在指定日期或指定日期以后改变的文件。如果没有提供日期,只复制那些源时间比目标时间新的文件。 /EXCLUDE:file1[+file2][+file3]... 指定含有字符串的文件列表。如果有任何字符串与要被复制的文件的绝对路径相符,那个文件将不会得到复制。 例如,指定如 \obj\ 或 .obj 的字符串会排除目录 obj 下面的所有文件或带有 .obj 扩展名的文件。 /P 创建每个目标文件前提示。 /S 复制目录和子目录,除了空的。 /E 复制目录和子目录,包括空的。 与 /S /E 相同。可以用来修改 /T。 /V 验证每个新文件。 /W 提示您在复制前按键。 /C 即使有错误,也继续复制。 /I 如果目标不存在,又在复制一个以上的文件, 则假定目标一定是一个目录。 /Q 复制时不显示文件名。 /F 复制时显示完整的源和目标文件名。 /L 显示要复制的文件。 /G 允许将没有经过加密的文件复制到不支持加密的目标。 /H 也复制隐藏和系统文件。 /R 改写只读文件。 /T 创建目录结构,但不复制文件。不包括空目录或子目录。/T /E 包括空目录和子目录。 /U 只复制已经存在于目标中的文件。 /K 复制属性。一般的 Xcopy 会重设只读属性。 /N 用生成的短名复制。 /O 复制文件所有权和 ACL 信息。 /X 复制文件审核设置(隐含 /O)。 /Y 禁止提示以确认改写一个现存目标文件。 /-Y 导致提示以确认改写一个现存目标文件。 /Z 用重新启动模式复制网络文件。
二、Xcopy命令实例介绍
案例一:用好XCOPY的排除备份
XCOPY可以排除不想要的文件或文件夹进行复制。不过这个命令用起来并不像Windows帮助里写的那么简单。我们先看看XCOPY的帮助是怎么写的:/EXCLUDE:file1[+file2][+file3]...
指定含有字符串的文件列表。每一个字符串必须在文件的单独行中。如果有任何字符串与要被复制的文件的绝对路径相符,那个文件将不会得到复制。 例如,指定如 \obj\ 或 .obj 的字符串会排除目录 obj 下面的所有文件或带有.obj 扩展名的文件。 看了这个帮助甚至它举的例子,你会用了吗?我相信你也仍然是一头雾水!没关系!下面就让我们来通过具体案例来作说明。 我们假设有两个文件夹,一个名为DATA,存放了如下表所示的文件夹或文件。一个名为BACKUP,是用作备份筛选结果的目标文件夹。 Z:. │ ├─DATA │ ├─计划 │ └─总结 │ └─piaoyuncc │ └─piaoyuncc1 │ 计划.TXT │ 总结.TXT │ piaoyuncc.php │ 1.计划 │ 2.总结 │ 3.计划 │ 4.总结 │ 5.总结 │ └─BACKUP假设我们的备份目标就是把凡是标记了“总结”的文件夹和文件拷贝到BACKUP这个目录里面,而排除标记了“计划”的文件和目录。 我们只需执行如下命令即可达到目的:
XCOPY /E /S /H /EXCLUDE:UNCOPY.TXT Z:\DATA Z:\BACKUP其中的文本列表文件UNCOPY.TXT里面,要包含我们想要排除的文件以及文件夹,这个文件需要我们另行编好保存,具体内容如下:
\piaoyuncc \飘云\ 飘云.TXT .飘云注意:上面的\piaoyuncc 这个不要结尾的 \ 代表可以排除多个piaoyuncc文件夹,例如:piaoyuncc1 piaoyuncc2 都可以同时排除 本例的用法还有一个很实用的应用场合:比如你硬盘上有文件损坏了,你又想备份硬盘,可以使用这个方法避开损坏的文件。
案例二:快速备份某一类文件
XCOPY *.PDF /S E:\MYPDFBAK
随后,当前驱动器(或文件夹)以及其下各级子文件夹下面的PDF类型文件均被复制到E盘的MYDOCBAK文件夹中了,而且保持原来的目录结构。 其中,参数/S的意思是在复制指定类型文件时包含本级目录和各级子目录(空目录除外)。 小提示:以上是复制一类文件的命令,如果希望迁移一批文件,而不是复制文件,那么只需在记事本中使用迁移文件命令MOVE就可以了。 案例三:按文件名中的关键词备份
XCOPY F:\2014物资总目\*材料*.* F:\材料 /S
存盘之后,将文件的扩展名改为BAT,得到“备份.BAT”文件,双击该文件,在“F:\材料”目录中便自动生成了所有材料类的文件。 说明:以上命令中“*材料*.*”是采用通配符来描述所有含有“材料”字样的文件,不管“材料”字样出现在文件名的什么位置。 案例四:给系统重要文件留个备份
XCOPY C:\*.DLL /S /H E:\SYSFILEBAK
命令行中的参数/H表示复制具有隐藏属性的文件,同时也复制系统属性的文件。/S表示包含系统的各级子目录。*.DLL表示对C盘的所有文件进行过滤筛选。 将该批处理文件拷贝到C盘的根目录中并执行以下,最后我们就会在E:\SYSFILEBAK文件夹中获得所有这些重要文件的备份了。 案例五:随时自动续传大量文件
很简单,在命令提示符下,执行XCOPY E:\*.* F: /S /H /D /Y
命令即可。它能查出哪些文件是已经复制过去的,跳过复制;同时查出哪些文件还没有复制过去,立即进行复制。其中起作用的一个主要参数/D:m-d-y
的意义是,复制在指定日期或指定日期以后更改的文件。如果没有提供日期,只复制那些源时间比目标时间新的文件。 案例六:自动跳过复制错误提示
还有一种备份的情况,我们经常也碰到的:不管是用窗口复制还是在命令提示符下操作,在复制过程中,因为复制某个文件出错或者这个文件在使用中,而停止了复制工作,如果我们这时不在电脑旁边,那么复制工作暂停并将一直等下去,直到我们人为干预。 如果我们事先想到这一情况,想让复制过程自动跳过某个出错的文件和某个正在使用中的文件而继续复制其他文件,可用下面的方法。 具体办法就是在XCOPY命令中加入参数 /C一个,也就是将命令行变成XCOPY E:\*.* D: /S /H /D /C /Y
就行了。参数/C的作用就是,即使有错,也继续复制。案例七:复制完毕自动关掉电脑
如果备份复制工作量很大,需要耗费很多时间,这时又正好到了下班时间,怎么办?需要加班等待吗?不用!我们可以用一个简单的批处理让XCOPY备份的过程变为自动复制,并且复制完成后关闭电脑。 新建文本文档,输入如下命令,然后更名为XCOPY.BAT
。 XCOPY E:\*.* D: /S /H /C /Y SHUTDOWN -S
需要备份时,双击XCOPY.BAT运行它,你这时候可以出去玩或下班了。电脑会自己复制备份完成文件然后自动关机。 可以看出,这里是应用了SHUTDOWN -S命令和XCOPY命令联合使用的一个技巧来完成备份和自动关机操作的。案例八:本机复制文件或文件夹的实例
Xcopy d:\UpdateFiles e:\123 /s /e /y
命令解释:将D盘的UpdateFiles文件夹中包含的所有东西,全部复制到E盘的123文件夹内;/s /e /y 参数说明:在复制文件的同时也复制空目录或子目录,如果目标路径已经有相同文件了,使用覆盖方式而不进行提示。 案例九:在局域网中的应用实例
Xcopy \\192.168.0.168\UpdateFiles e:\123 /s /e /y
命令解释:将192.168.0.168这台计算机的名称为UpdateFiles的文件夹内的所有东西,全部复制到本机的e:\123 文件夹;参数说明:在复制文件的同时也复制空目录或子目录,如果目标路径已经有相同文件了,使用覆盖方式而不进行提示。