在Windows系统中我们可以在cmd命令行下使用copy命令对文件进行复制。但是copy命令只能复制文件,对于文件夹的复制,则需要xcopy命令来复制。xcopy是copy的高级版本,有更丰富的参数,能实现更加复杂的功能,能进行文件和文件夹的复制。
xcopy:复制文件和目录树。
一、语法定义:
xcopy source [destination] [/a | /m] [/d[:date]] [/p] [/s [/e]] [/v] [/w] [/c] [/i] [/q] [/f] [/l] [/g] [/h] [/r] [/t] [/u] [/k] [/n] [/o] [/x] [/y] [/-y] [/z] [/b] [/j] [/exclude:file1[+file2][+file3]...]
二、参数说明:
/?:查看帮助。
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:在可重新启动模式下复制网络文件。
/b:复制符号链接本身与链接目标。
/j:复制时不使用缓冲的I/O。推荐复制大文件时使用。
三、调用示例:
要从驱动器A将所有文件和子目录(包括所有空的子目录)复制到驱动器B,请键入:
xcopy a:b:/s /e
要包含上一示例中的任何系统或隐藏文件,请按如下所示添加/h命令行选项:
xcopy a:b:/s /e /h
要使用\Rawdata目录中1993年12月29日后更改的文件更新\Reports目录中的文件,请键入:
xcopy \rawdata \reports /d:12-29-1993
要更新上例中\Reports中存在的所有文件,而不考虑日期,请键入:
xcopy \rawdata \reports /u
如果只想获得前一个命令要复制的文件列表,而不复制文件,请键入:
xcopy \rawdata \reports /d:12-29-1993 /l > xcopy.out
文件Xcopy.out列出了要复制的所有文件。
要将\Customer目录和所有子目录复制到网络驱动器H上的目录\\Public\Address,保留只读属性,并在H上创建新文件时对您做出提示,请键入:
xcopy \customer h:\public\address /s /e /k /p
要发出上一个命令,确保在\Address目录不存在时xcopy会创建该目录,同时应抑制显示创建新目录时要显示的消息,请按如下所示添加/i命令行选项:
xcopy \customer h:\public\address /s /e /k /p /i