资源描述
如何批处理拷贝文件和文件夹默认分类2009-12-2818:20:15阅读122评论0字号:大中小订阅经常做数据备份的人很清楚,如果是少量数据或文件,简单复制即可,可是要是大量数据的话,再用这种方法,则费力费时,那么如何批处理拷贝文件和文件夹,可以用xcopy实现,例如:C:xcopyC:ppt*.*D:ppt/s/e这条命令的意思就是把C盘下的PPT文件夹全部拷贝到D盘XCOPY还有众多的功能,是加参数来完成的。上面的/s/e参数的作用分别是把子目录和空目录都复制过去,一些使用举例和参数说明如下:1、如只是单纯地复制E:盘上所有文件到D:盘上,就输入“xcopye:*.*d:/s/h就行啦!如果在复制过程中,你不要他复制文件啦!那就按键盘热键“Ctrl+Pause/break二个热键来中断复制。2、如果想把E:盘上所有文件复制到D:盘上,分为今天复制一点,明天再接着复制一些,后天再接着复制一些。或者是某种原因上次没有复制完成,今天想接着复制。(这种情况是经常在复制文件中出现的)那可怎么办才好呢?那就输入“xcopye:*.*d:/s/h/d/y”就行啦。他能查出那些文件是已经复制过去啦,那些文件还没有复制过去的。3、当然我们也会碰到这种情况,一些文件我们已经修改过啦!网上面又有最新版本的啦。原来备份的那份文件我们要及时更新啦。那怎么才能同步更新呢?当然我们可以把最新的好份文件复制过去,这也是一种解决办法。如果修改的文件有很多的,自己到时候也记不清楚那份文件是更新过的。这么多的原来备份的那份文件都要更新,都要复制过去,可不是件省力气的活,而且容易出错和一些文件被忘记啦!那和上面一样也同样输入xcopye:*.*d:/s/h/d/y就行啦!4、还有一种情况我们经常也碰到的,因为复制某个文件出错或者这个文件在使用中,而停止了复制工作,(比如,复制C盘上的windowsxp)我们这时候想跳过某个出错的文件和某个正在使用中文件而继续复制其他文件。在多加入一个参数/c就是xcopye:*.*d:/s/h/d/c/y就行啦!5、有时候我们想XCOPY变为自动复制,并且复制完成后关闭电脑,可以建立一个批处理文件,新建文本文档,更名为XCOPY.BAT当然扩展名原来是TXT格式的要更名为BAT在这个XCOPY.BAT中输入xcopye:*.*d:/s/h/c/yshutdown-s然后双击xcopy.bat运行它,你这时候可以出去玩啦。电脑会自己复制备份完成文件然后自动关闭电脑。XCOPYsourcedestination参数(如/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复制文件和目录,包括子目录。语法xcopySourceDestination/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在开始复制文件之前将显示以下消息并等待您的响应:Pressanykeytobegincopyingfile(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在可重启模式中通过网络复制。/?在命令提示符显示帮助。注释使用/vXOX使用/exclude列出每个文件的单独行中的每个字符串。如果列出的任何字符串与要复制的文件的绝对路径的任何部分匹配,就从复制进程排除该文件。例如,如果指定字符串Obj,则会排除Obj目录下的所有文件。如果指定字符串.obj,则排除具有.obj扩展名的所有文件。使用/z如果在复制过程中丢失连接(例如,如果用于连接的服务器脱机),复制过程将在重新建立连接后恢复。/z也显示每个文件完成的复制操作的百分比。在COPYCMD环境变量中使用/y可在COPYCMD环境变量中使用/y。在命令行上使用/-y可以覆盖该命令。默认情况下,会提示您覆盖,除非您从批处理脚本内运行copy。复制加密的文件将加密文件复制到不支持EFS的卷会导致错误。应首先解密文件或将文件复制到支持EFS的卷中。附属文件要附加文件,请指定单个目标文件,多个源文件(使用通配符或文件1+文件2+文件3格式)。Destination的默认值如果省略Destination,xcopy命令将文件复制到当前目录。指定Destination是文件还是目录如果Destination不包含现有目录且不以反斜杠()结尾,会出现下列消息:Doesdestinationspecifyafilenameordirectorynameonthetarget(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,请键入:xcopya:b:/s/e要包含上一示例中的任何系统或隐藏文件,请按如下所示添加/h命令行选项:xcopya:b:/s/e/h要使用Rawdata目录中1993年12月29日后更改的文件更新Reports目录中的文件,请键入:xcopyrawdatareports/d:12-29-1993要更新上例中Reports中存在的所有文件,而不考虑日期,请键入:xcopyrawdatareports/u如果只想获得前一个命令要复制的文件列表,而不复制文件,请键入:xcopyrawdatareports/d:12-29-1993/lxcopy.out文件Xcopy.out列出了要复制的所有文件。要将Customer目录和所有子目录复制到网络驱动器H:上的目录PublicAddress,保留只读属性,并在H:上创建新文件时对您做出提示,请键入:xcopycustomerh:publicaddress/s/e/k/p要发出上一个命令,确保在Address目录不存在时xcopy会创建该目录,同时应抑制显示创建新目录时要显示的消息,请按如下所示添加/i命令行选项:xcopycustomerh:publicaddress/s/e/k/p/i可以创建批处理程序执行xcopy操作,并且使用if批处理命令在发生错误时处理退出码。例如,以下的批处理程序使用可替换的xcopy源和目标参数:echooffremCOPYIT.BATtransfersallfilesinallsubdirectoriesofremthesourcedriveordirectory(%1)tothedestinationremdriveordirectory(%2)xcopy%1%2/s/eiferrorlevel4gotolowmemoryiferrorlevel2gotoabortiferrorlevel0gotoexit:lowmemoryechoInsufficientmemorytocopyfilesorechoinvaliddriveorcommand-linesyntax.gotoexit:abortechoYoupressedCTRL+Ctoendthecopyoperation.gotoexit:exit要使用该批处理程序将C:Prgmcode目录和其子目录中的所有文件复制到驱动器B中,请键入:copyitc:prgmcodeb:该命令解释程序将用C:Prgmcode替换%1与B:。对于%2,然后使用xcopy与/e和/s命令行选项。如果xcopy遇到错误,批处理程序将读取退出码并转到相应IFERRORLEVEL语句中指示的标签,然后显示相应的消息并退出批处理程序。可以在批处理文件内的任何地方使用批处理参数,以提取有关环境设置的信息。Cmd.exe提供批处理参数扩展变量(%0到%9)。在批处理文件中使用批处理参数时,%0将由批处理文件名替换,而%1到%9将由在命令行键入的相应参数替换。要访问超出%9的参数,必须使用shift命令。有关shift命令的详细信息,请参阅Shift。%*批处理参数是传递到批处理文件中的所有参数(不包括%0)的通配符引用。例如,要将Folded中的内容复制到Folder2,其中%1和2将分别由值Folded和Folder2替换,请在批处理文件Mybatch.bat中键入如下内容:xcopy%1*.*%2要运行该文件,请键入:mybatch.batC:folder1D:folder2这与在批处理文件中键入如下内容是等效的:xcopyC:folder1*.*D:folder2也可以在批处理参数中使用修改符。修改符使用当前的驱动器和目录信息将批处理参数作为部分或完整的文件或目录名进行扩展。要使用修改符,请键入百分号(%)字符,后面是波形符号()字符,然后键入合适的修改符(即%modifier)。下表列出了可在扩展中使用的修改符。修饰符描述%1扩展%1并删除任何外围引号()。%f1将%1扩展到完全限定的路径名。%d1将%1扩展到驱动器盘符。%p1将%1扩展到路径。%n1将%1扩展到文件名。%x1将%1扩展到文件扩展名。%s1扩展的路径仅包含短名称。%a1将%1扩展到文件属性。%t1将%1扩展到文件日期和时间。%z1将%1扩展到文件大小。%$PATH:1搜索PATH环境变量中列出的目录,并将%1扩展到第一个找到的目录的完全限定名称。如果没有定义环境变量名称,或没有找到文件,则此修改符扩展成空字符串。下表列出了可用于获取综合结果的修改符和限定符的可能组合情况:修饰符描述%dp1将%1扩展到驱动器盘符和路径。%nx1将%1扩展到文件名和扩展名。%dp$PATH:1在PATH环境变量列出的目录中搜索%1,并扩展到第一个找到的目录的驱动器盘符和路径。%ftza1将%1扩展到类似dir的输出行。注意?在上面的例子中,可以使用其他批处理参数值替换%1和PATH。%*修改符是唯一可代表在批处理文件中传递的所有参数的修改符。不能将该修改符与%修改符组合使用。%语法必须通过有效的参数值来终止。不能以与使用环境变量相同的方式使用批处理参数。不能搜索和替换值,或检查子字符串。但是,可以将参数分配给环境变量,然后对该环境变量进行操作。
展开阅读全文