xcopy实现批处理拷贝⽂件或⽂件夹
xcopy 是⼀个很有⽤的doc命令,应该学习学习!
可以⽤xcopy实现,例如:
C:\>xcopy C:\ppt\*.* D:\ppt\ /s /e
这条命令的意思就是把C盘下的PPT⽂件夹全部拷贝到D盘
XCOPY 还有众多的功能,是加参数来完成的。上⾯的/s /e 参数的作⽤分别是把⼦⽬录和空⽬录都复制过去,
⼀些使⽤举例和参数说明如下:
1、如只是单纯地复制 E:\ 盘上所有⽂件到 D:\ 盘上,就输⼊“ xcopy e:\*.* d: /s /h "就⾏啦!如果在复制过程中,你不要他复制⽂件啦!那就按键盘热键“Ctrl " +"Pause /break" ⼆个热键来中断复制。
2、如果想把E:\ 盘上所有⽂件复制到D:\盘上,分为今天复制⼀点,明天再接着复制⼀些,后天再接着复制⼀些。或者是某种原因上次没有复制完成,今天想接着复制。(这种情况是经常在复制⽂件中出现的)那可怎么办才好呢?
那就输⼊“ xcopy e:\*.* d: /s /h /d /y ”就⾏啦。他能查出那些⽂件是已经复制过去啦,那些⽂件还没有复制过去的。
3、当然我们也会碰到这种情况,⼀些⽂件我们已经修改过啦!⽹上⾯⼜有最新版本的啦。原来备份的那份⽂件我们要及时更新啦。那怎么才能同步更新呢?当然我们可以把最新的好份⽂件复制过去,这也是⼀种解决办法。
如果修改的⽂件有很多的,⾃⼰到时候也记不清楚那份⽂件是更新过的。这么多的原来备份的那份⽂件都要更新,都要复制过去,可不是件省⼒⽓的活,⽽且容易出错和⼀些⽂件被忘记啦!
那和上⾯⼀样也同样输⼊" 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]] [/u] [/i] [/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 格式)。
Destination 的默认值
如果省略 Destination,xcopy 命令将⽂件复制到当前⽬录。
指定 Destination 是⽂件还是⽬录
如果 Destination 不包含现有⽬录且不以反斜杠 (\) 结尾,会出现下列消息:
Does destination specify a file name
or directory name on the target
(F = file, D = directory)?
如果要将⼀个或多个⽂件复制到⼀个⽂件,请按 F。如果要将⼀个或多个⽂件复制到⼀个⽬录,请按 D。
使⽤ /i 命令⾏选项可抑制显⽰该消息,从⽽导致 xcopy 认定在源是多个⽂件或⼀个⽬录的情况下,⽬标是⼀个⽬录。
使⽤ xcopy 命令设置 Destination ⽂件的存档属性
xcopy 命令创建具有存档属性设置的⽂件,⽆论源⽂件中是否设定了此属性。有关⽂件属性和 attrib 的详细信息,请参阅“”。⽐较 xcopy 和 diskcopy
如果磁盘的⼦⽬录中包含⽂件,要将其复制到具有不同格式的磁盘中,请使⽤ xcopy 命令,⽽不要使
⽤ diskcopy。因为diskcopy 命令是⼀个磁道接⼀个磁道地复制磁盘,所以需要源磁盘和⽬标磁盘的格式必须相同。xcopy 命令没有该要求。通常情况下请使⽤ xcopy,除⾮您需要完整的磁盘图像副本。
xcopy 的退出码
要处理 xcopy 返回的退出码,请在批处理程序的 if 命令⾏上使⽤ errorlevel 参数。有关使⽤“if”处理退出码的批处理程序的范例,请参阅“”。下表列出每⼀个退出码和说明。
退出码说明 0 ⽂件复制没有错误。 1 没有到要复制的⽂件。 2 ⽤户按 CTRL+C 终⽌了 xcopy。 4 出现了初始化错误。没有⾜够的内存或磁盘空间,或命令⾏上输⼊了⽆效的驱动器名称或语法。 5 出现了磁盘写⼊错误。范例
要从驱动器 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
可以创建批处理程序执⾏ xcopy 操作,并且使⽤ if 批处理命令在发⽣错误时处理退出码。例如,以下的批处理程序使⽤可替换的 xcopy 源和⽬标参数:
复制代码代码如下:
@echo off
rem COPYIT.BAT transfers all files in all subdirectories of
rem the source drive or directory (%1) to the destination
rem drive or directory (%2)
xcopy %1 %2 /s /e
if errorlevel 4 goto lowmemory
if errorlevel 2 goto abort
if errorlevel 0 goto exit
:lowmemory
echo Insufficient memory to copy files or
echo invalid drive or command-line syntax.
goto exit
:abort
echo You pressed CTRL+C to end the copy operation.
goto exit
:exit
要使⽤该批处理程序将 C:\Prgmcode ⽬录和其⼦⽬录中的所有⽂件复制到驱动器 B 中,请键⼊:
copyit c:\prgmcode b:
该命令解释程序将⽤ C:\Prgmcode 替换 %1 与 B:。对于 %2,然后使⽤ xcopy 与 /e 和 /s 命令⾏选项。如果 xcopy 遇到错误,批处理程序将读取退出码并转到相应 IF ERRORLEVEL 语句中指⽰的标签,然后显⽰相应的消息并退出批处理程序。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。