在 批处理脚本中,操作文件与文件夹的方法,包括文件的复制、删除、移动等操作,并附有xcopy命令的详细用法。
原文地址: http://www.jbxue.com/article/14535.html

批处理中的文件、文件夹操作,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 ”就行啦。他能查出那些文件是已经复制过去啦,那些文件还没有复制过去的。
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]] [/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 格式)。
本节是 BAT批处理文件与文件夹(附xcopy命令详解) 第二部的内容,请大家继续阅读。
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 语句中指示的标签,然后显示相应的消息并退出批处理程序。

BAT批处理之文件与文件夹(附xcopy命令详解)相关推荐

  1. c语言d打开文件夹,BAT批处理之文件与文件夹操作代码(附xcopy命令详解)

    批处理中的文件.文件夹操作,xcopy命令的用法. 一,建bat文件自动执行复制,删除命令. 例1:复制cd.dll文件至windows\system32的bat文件内容: copy cd.dll % ...

  2. linux 群组分类,Linux文件权限与群组修改命令详解

    在Linux中,一切皆为文件(目录也是文件),每个文件对用户具有可读(read).可写(write).可执行(execute)权限.目录的执行操作表示是否有权限进入该目录,文件的可执行表示是否可以运行 ...

  3. linux显示当前目录下文件,Linux显示当前目录有哪些文件命令-linux ls命令详解-嗨客网...

    Linux显示当前目录文件(ls)教程 在 Linux ls命令详解 功能 显示当前目录或指定路径下面的文件列表. 语法 ls [options] [dirname] 参数 参数 描述 options ...

  4. python怎么读文件夹下的文件夹-python如何获取当前文件夹下所有文件名详解

    前言 本文主要给大家介绍了关于python获取当前文件夹下所有文件名的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 os 模块下有两个函数: os.walk() os.li ...

  5. 在linux系统中创建文件夹,Linux系统中创建文件夹命令详解

    Linux系统中创建一个新的文件夹我们可以使用命令来执行,下面由学习啦小编为大家整理了Linux系统中创建文件夹命令详解,希望对大家有帮助! Linux系统中创建文件夹命令详解 一.mkdir命令使用 ...

  6. python删除文件夹命令_linux删除文件夹(命令详解)

    linux删除文件夹 Linux删除文件,文件夹主要用的命令是rm,下面将对linuxrm命令做一个简单的介绍. 语法: rm[选项]DirName 该命令中的[选项]常用的有以下几种: -i删除前逐 ...

  7. linux-----压缩解压缩文件夹、文件命令详解

    linux tar压缩解压缩文件夹.文件命令详解 常用命令: 1.压缩当前目录下文件夹/文件test到test.tar.gz: tar -zcvf test.tar.gz test 2.解压缩当前目录 ...

  8. DOS循环:bat/批处理for命令详解之一 (史上虽详尽的总结和说明~~)

    DOS循环:bat/批处理for命令详解之一 (史上虽详尽的总结和说明~~) --- --- 前言: 虽然以前对批处理也算有点研究,但一直对for命令理解不够透彻,偶尔用时也是照猫画虎的用一下. 虽然 ...

  9. linux下bcd文件还原,BCDEDIT命令详解 | 数据恢复实验室 Data Recovery Laboratory

    案例:bcdedit添加系统启动项 使用BCDEDIT命令,编辑启动项,方便.快捷,只需记住几条命令,必要时替换即可. 以下是一个案例: 标识符 {de329298-0dd8-11e0-90b6-8a ...

最新文章

  1. 腾讯科技改版 新闻帝国必经之路
  2. libjpeg编译使用详解
  3. BinaryStar代码分析前言
  4. linux中人脸识别不了,虹软人脸识别在 linux中so文件加载不到的问题
  5. Java集合类学习总结
  6. Redhat6.5安装vnc服务远程桌面
  7. VS2005 工程在win7下使用管理员权限运行
  8. android 语音读短信,读短信来电报姓名2021下载-读短信来电报姓名app下载10.50 安卓版-西西软件下载...
  9. 电子元器件晶体二极管的识别和检测注意事项
  10. jquery漂浮广告代码
  11. 计算机五大类型,操作系统目前有五大类型
  12. foxpro导入 mysql_Foxpro DBF数据库转换成SQL Server 6.5表的几种方法
  13. 普罗米修斯监控mysql与邮件告警
  14. latex集合的包含_latex 集合相关符号:实数集,整数集,并,包含,真包含
  15. ISIS与OSPF区别
  16. 拉丁超立方——样本点空间转换
  17. inner join 和 outer join 的区别
  18. 双精度浮点数double
  19. Vert.x安装指南
  20. 在你眼中,人生最重要的是什么?

热门文章

  1. 有关计算机知识的英语论文,有关计算机英语论文范文
  2. [女生特供]脱单路径大分析,科学拯救单身的妳
  3. JavaScript-03DOM
  4. ffmpeg rtmp 花屏_iphone6splus花屏闪屏,iphone6sp换屏价格
  5. [论文笔记] Line-CNN: End-to-End Traffic Line Detection With Line Proposal Unit
  6. Swift之二维码的生成、识别和扫描
  7. date js 减去_从JavaScript中的日期中减去天,月,年
  8. ETest系列课程 第三讲 ETestDev快速测试
  9. 绝版「游戏」保护计划!
  10. 【LaTex】写论文时关于嵌入字体embedded fonts的问题