XCOPY

XCOPY

--------------------------------------------------------------------------------

拷贝目录及其子目录和文件(除隐含和系统文件)。

使用这个命令,可以拷贝一个目录中的所有文件,包括该目录中的子目录的所有文件。

 

语法 :


XCOPY source [destination][/Y][/-Y] [/A|/M] [/D:date] [/P] [/S[/E]] [/V]
[/W] 

 

参数 :

source
指定要拷贝的文件名和位置,必须包含驱动器或路径。

destination
指定拷贝的目标位置,可包含驱动器字母和冒号、目录名、文件名、或它们的组合。

 

开关 :


/Y
指定让XCOPY在替换原有文件时不进行确认。默认时,若目标文件已经存在,XCOPY会让你确认是否替换原有文件(MS-DOS的旧版直接覆盖原有文件)。若XCOPY命令在批处理文件中执行,则XCOPY以旧版本的方式操作,不进行安全性确认。 此开关覆盖所有默认值和COPYCMD环境变量的当前设置。

/-Y
指定让XCOPY在替换原有文件时进行确认。此开关覆盖所有默认值和COPYCMD环境变量的当前设置。

/A
只拷贝那些档案文件属性已设置的源文件。这个开关不修改源文件的档案属性。关于如何设置档案文件属性的信息,请参阅ATTRIB命令。

/M
拷贝档案文件属性已设置的源文件。和/A开关不同,/M开关关闭源文件的档案文件属性。关于如何设置档案文件属性的信息,请参阅ATTRIB命令。

/D:date
只拷贝在指定日期之后修改过的源文件。注意日期的标准格式取决于正在使用的COUNTRY设置。

/P
在创建每一个目标文件时提示确认该文件。

/S
拷贝目录和子目录,除非它们为空。如果忽略这一开关,XCOPY就只在单个目录内部工作。

/E
拷贝目录和子目录,即使它们为空。如果忽略这一开关,XCOPY就只在单个目录内部工作。

/V
每次写目标文件时,检验目标文件和源文件是否完全相同。

/W
在拷贝文件之前显示如下信息并等待回答:

按任意键开始文件拷贝。

 

相关的命令

关于拷贝单个文件的信息,请参阅<COPY>命令。

关于拷贝磁盘命令的信息,请参阅<DISKCOPY>命令。

 


--------------------------------------------------------------------------------

XCOPY─注解
 

 

目标位置的默认值

如果省略了目标位置,XCOPY命令就将文件拷贝到当前目录下。

 

 

指定目标是文件还是目录

如果目标位置中不包含已存在的目录,并且没有用反斜杠(/)结束,XCOPY就提示如下格式的信息:

Does destination specify a file name
or directory name on the target
(F = file, D = directory)?

如果希望文件被拷贝到一个文件就按F;如果希望文件被拷贝到一个目录则按D。

 

设置COPYCMD环境变量

COPYCMD环境变量用于确定在执行COPY、MOVE和XCOPY命令时(不管是否以批命令的方式发出),若目标文件已存在,是否提醒用户进行确认。

若让COPY、MOVE和XCOPY命令在覆盖原有文件之前进行确认,则COPYCMD应设为/-Y;否则,应设为/Y。键入带开关/Y或/-Y的上述命令后,默认值和COPYCMD的当前设置均被覆盖。

 

XCOPY不拷贝隐含和系统文件

在老版本的MS-DOS中,XCOPY拷贝隐含和系统文件。在MS-DOS 6.22则不然。要去掉文件的隐含或系统属性,可使用<ATTRIB>命令。

 

XCOPY为目标文件设置档案属性

XCOPY创建的文件档案属性已设置,而不管源文件的这个属性中是否设置。关于文件属性的信息,请参阅ATTRIB命令。

 

XCOPY和DISKCOPY

如果要将一张带子目录(子目录中有文件)的磁盘拷贝到另一个不同格式的磁盘,应该使用XCOPY命令来代替DISKCOPY命令。因为DISKCOPY命令是逐道进行拷贝的,它要求源盘和目标盘具有同样的格式。而XCOPY却没有这一要求。在一般情况下,应使用XCOPY,除非需要完整的磁盘映像拷贝。但是,XCOPY不能拷贝隐含或系统文件,如IO.SYS和MSDOS.SYS。因此,使用DISKCOPY才能拷贝系统盘。

 

XCOPY的退出码

下面列出XCOPY的退出码及其简要描述:

0
文件拷贝没有发生错误。

1
没有文件要拷贝。

2
用户按CTRL+C终止XCOPY。

4
初始化错误。没有足够的内存或磁盘空间,或是命令行输入了非法的驱动器名或语法。

5
发生磁盘写错误。

可以用批处理文件中IF命令的ERRORLEVEL参数处理XCOPY的退出码。详细信息,请参阅<XCOPY─例子>主题。

 


--------------------------------------------------------------------------------

XCOPY─例子


下例将A盘上的所有文件和子目录拷贝到B盘(包括所有的空子目录):

xcopy a: b: /s /e

下例使用/D:和/V开关:

xcopy a: b: /d:01/18/93 /s /v

此例中,仅将A盘上01/18/93或之后写入的文件拷贝到B盘。文件写到B盘后,XCOPY命令比较两个磁盘上的文件以确信它们完全一致。

可创建批程序来执行XCOPY操作,并且在有错误发生时使用批处理IF命令处理退出码。例如,下面的批处理程序使用可替换参数对应XCOPY的源和目标参数:


@echo off
rem COPYIT.BAT transfers all source
rem files in all directories on the source
rem drive (%1) to the destination drive (%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,然后执行带有/E和/S开关的XCOPY命令。如果XCOPY发现错误,批处理程序就读退出码并转移到IF ERRORLEVEL语句指定的标号运行。MS-DOS显示相应的信息,然后退出该批处理程序。

 

--------------------------------------------------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值