xcopy命令详解,BAT批处理文件与文件夹操作代码
相信很多小伙伴在工作或个人电脑应用过程中不免会经常复制或备份文件,本文涂涂小窝整理bat批处理中对文件以及文件夹操作时,xcopy命令的用法分享给大家,方便自己同时也方便需要的人。
一、建bat文件自动执行复制,删除命令
例1:复制cd.dll文件至windows\system32的bat文件内容:代码如下:
copy cd.dll %windir%\system32
例2:卸载windows\system32目录中的cd.dll,即把上面复制的文件删除: 代码如下:
del %windir%\system32\cd.dll
例3:删除download文件夹中的文件,例子如下: 代码如下:
del C:\DOWNLOAD\*.*
注意,此处的del命令只能删文件,不能删文件夹。删除文件夹使用rd命令, 代码如下:
rd Filemon
这里的filemon文件夹和该bat文件在同一目录下,省去具体路径了。但是rd只能删除空文件夹,若要删除文件夹及其里面的所有子目录和文件,请用rd命令带/s /q参数,/s参数表示删除该文件夹及其下面的子目录和文件 /q参数表示,不需要确认。代码如下:
rd 123 /s /q
二、创建文件夹
例如:在E:\My documents下面一次创建3个新文件夹:Newfolder1,Newfolder2,Newfolder3代码如下:
@echo off
md "E:\My documents\Newfolder1"
md "E:\My documents\Newfolder2"
md "E:\My documents\Newfolder3"
三、执行程序,打开文件
例1:执行C盘下的WinWord.exe程序代码如下:
start C:\WinWord.exe
例2:用某个程序打开某个文件,如用TheWorld.exe打开一个htm文件代码如下:
start d:\TheWorld\TheWorld.EXE C:\我有一个恋爱.htm
[注意]:不论是程序或文件路径中含有空格,都必须用引号括起来:代码如下:
start d:\TheWorld\TheWorld.EXE "e:\My documents\我有一个恋爱.htm"
所有程序中的引号不能是全角的,必须用半角的格式,所以输入引号前最好关闭中文汉字输入系统
XCOPY 还有更多强大的功能,就是加参数来完成的。上面的/s /e 参数的作用分别是把子目录和空目录都复制过去,一些使用举例和参数说明如下:
1、如只是单纯地复制 E:\ 盘上所有文件到 D:\ 盘上,就输入“ xcopy e:\*.* d: /s /h "就行啦!如果在复制过程中,你不需要它复制文件了,那么请按键盘热键“Ctrl " +"Pause /break" 二个热键来中断复制。
2、如果想把E:\ 盘上所有文件复制到D:\盘上,分为今天复制一点,明天再接着复制一些,后天再接着复制一些。或者是某种原因上次没有复制完成,就想当天(今天)接着复制。(这种情况是经常在复制文件中出现的)那我们需要如何做才好呢?
方法是创建“ xcopy e:\*.* d: /s /h /d /y ”bat即可。它能查出哪些文件是已经复制过去的,而哪些文件是最新或者曾(忽略)过还没有复制过去的。
3、当然我们也会碰到这样一种情况,过去复制过的文件中一些文件我们已经修改过了!那么原路径上面又有最新版本的文件啦。那么我们原来备份的那份文件我们需要及时更新。怎么做才能同步更新呢?当然我们可以把最新的文件复制过去,这也是一种解决办法。
如果修改的文件有很多,而自己到时候也记不清楚那些文件是更新过的。很多原来备份的份文件都要更新,都要复制过去,并不是件省力气的活,而且容易出错和遗忘一部分文件!
方法同2创建" xcopy e:\*.* d: /s /h /d /y "即可。
4、还有一种情况我们经常也会碰到,因为复制某个文件出错或者这个文件在使用中,而停止了复制工作,(比如,复制C 盘上的 windows xp )我们这时候想跳过某个出错的文件和某个正在使用中文件而继续复制其他文件。
方法是多加入一个参数" /c "就是 " xcopy e:\*.* d: /s /h /d /c /y "即可。
5、有时候我们想让XCOPY 变为自动复制,并且复制完成后关闭电脑,可以建立一个批处理文件,新建文本文档,更名为XCOPY.BAT 当然扩展名原来是.TXT 格式的需要更名为.BAT 后缀格式文件。在这个 XCOPY.BAT 中输入代码如下:
xcopy e:\*.* d: /s /h /c /y
shutdown -s
然后双击xcopy.bat 运行它,这时候我们可以让批处理自动执行利用时间去做别的事情。不用担心电脑会自己复制备份完成文件然后并自动关闭电脑。
XCOPY source [destination] 参数(如 /s /e)
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 Source [Destination] [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d[:mm-dd-yyyy]] [/s [/e]] [/t] [/k] [/r] [/h] [{/a|/m}] [/n] [/o] [/x] [/exclude:file1[+[file2]][+[file3]] [{/y|/-y}] [/z]
参数Source必需的。指定要复制的文件的位置和名称。该参数必须包含驱动器或路径。
Destination指定要复制的文件的目标。该参数可以包含驱动器盘符和冒号、目录名、文件名或者它们的组合。
/w在开始复制文件之前将显示以下消息并等待您的响应:Press any key to begin copying file(s)
/p提示您确认是否要创建每个目标文件。
/c忽略错误。
/v在写入目标文件时验证每个文件,以确保目标文件与源文件完全相同。
/q禁止显示 xcopy 消息。
/f复制时显示源文件名和目标文件名。
/l显示要复制的文件列表。
/g创建解密的目标文件。
/d[:mm-dd-yyyy] 只复制那些在指定日期或指定日期之后更改过的源文件。如果不包括 mm-dd-yyyy 值,xcopy则会复制比现有 Destination 文件新的所有 Source 文件。该命令行选项使您可以更新更改过的文件。
/u只从 source 复制 destination 中已有的文件。
/i如果 Source 是一个目录或包含通配符,而 Destination 不存在,xcopy 会假定 destination 指定目录名并创建一个新目录。然后,xcopy 会将所有指定文件复制到新目录中。默认情况下,xcopy 将提示您指定 destination 是文件还是目录。
/s复制非空的目录和子目录。如果省略 /s,xcopy 将在一个目录中工作。
/e复制所有子目录,包括空目录。同时使用 /e、/s 和 /t 命令行选项。
/t只复制子目录结构(即目录树),不复制文件。但要复制空目录,则必须包含 /e 命令行选项。
/k复制文件,如果源文件具有只读属姓,则在目标文件中保留该属姓。默认情况下,xcopy 会删除只读属姓。
/r复制只读文件。
/h复制具有隐藏和系统文件属姓的文件。默认情况下,xcopy 不复制隐藏或系统文件。
/a只复制那些具有存档文件属性设置的源文件。/a 不修改源文件的存档文件属性。有关如何通过使用 attrib 来设置存档文件属性的信息,请参阅“”。
/m复制具有存档文件属性设置的源文件。与 /a 不同,/m 关闭在源中指定的文件的存档文件属性。有关如何通过使用 attrib 来设置存档文件属性的信息,请参阅“”。
/n使用 NTFS 短文件或目录名创建副本。将文件或目录从 NTFS 卷复制到 FAT 卷或者当目标文件系统需要 FAT 文件系统命名约定(即 8.3 个字符)时,需要 /n。目标文件系统可以是 FAT 或 NTFS。
/o复制文件所有权与自由选择的访问控制列表 (DACL) 信息。
/x复制文件审核设置和系统访问控制列表 (SACL) 信息(包含 /o)。
/exclude:filename1[+[filename2]][+[filename3]]指定包含字符串的文件列表。
/y禁止提示您确认要覆盖现存的目标文件。
/-y提示您确认要覆盖现有目标文件。
/z在可重启模式中通过网络复制。
/?在命令提示符显示帮助。
注释使用 /v XOX
使用 /exclude列出每个文件的单独行中的每个字符串。如果列出的任何字符串与要复制的文件的绝对路径的任何部分匹配,就从复制进程排除该文件。例如,如果指定字符串 "\Obj\",则会排除 Obj 目录下的所有文件。如果指定字符串 ".obj",则排除具有 .obj 扩展名的所有文件。
使用 /z如果在复制过程中丢失连接(例如,如果用于连接的服务器脱机),复制过程将在重新建立连接后恢复。
/z 也显示每个文件完成的复制操作的百分比。
在 COPYCMD 环境变量中使用 /y可在 COPYCMD 环境变量中使用 /y。在命令行上使用 /-y 可以覆盖该命令。默认情况下,会提示您覆盖,除非您从批处理脚本内运行 copy。
复制加密的文件
将加密文件复制到不支持 EFS 的卷会导致错误。应首先解密文件或将文件复制到支持 EFS 的卷中。
附属文件
要附加文件,请指定单个目标文件,多个源文件(使用通配符或文件 1 + 文件 2 + 文件 3 格式)。