c语言复制文件夹xcopy,C#学习基本概念---xcopy(复制文件和目录树)
XCOPY是COPY的扩展,可以把指定的目录连文件和目录结构一并拷贝,但不能拷贝系统文件;使用时源盘符、源目标路径名、源文件名至少指定一个;选用/S时对源目录下及其子目录下的所有文件进行COPY。除非指定/E参数,否则/S不会拷贝空目录,若不指定/S参数,则XCOPY只拷贝源目录本身的文件,而不涉及其下的子目录;选用/V参数时,对拷贝的扇区都进行较验,但速度会降低。中文名
复制文件和目录树
外文名
xcopyDOS命令
COPY的扩展,复制文件和目录树
作 用
复制文件、目录树及目录下文件
C:\Documents and Settings\Administrator>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]
[/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复制文件审核设置(隐含 /O)。
现存目标文件。
【就是直接覆盖——Three~注】
/-Y导致提示以确认改写一个
现存目标文件。
/Z用重新启动模式复制网络文件。
命令行开关 /Y 可以预先在 COPYCMD 环境变量中设置。
这可能被命令行上的 /-Y 改写。
C:\Documents and Settings\Administrator>
/B 复制符号链接本身与链接目标相对。
/J 复制时不使用缓冲的 I/O。推荐复制大文件时使用。
语法
XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]
[/C] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
[/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z]
[/EXCLUDE:file1[+file2][+file3]...]
参数
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 命令行选项。
/k 复制文件,如果源文件具有只读属性,则在目标文件中保留该属性。默认情况下,xcopy 会删除只读属性。
/r 复制只读文件。
/h 复制具有隐藏和系统文件属性的文件。默认情况下,xcopy 不复制隐藏或系统文件。
/a 只复制那些具有存档文件属性设置的源文件。/a 不修改源文件的存档文件属性。
/m 复制具有存档文件属性设置的源文件。与 /a 不同,/m 关闭在源中指定的文件的存档文件属性。
/n 使用 NTFS 短文件或目录名创建副本。将文件或目录从 NTFS 卷复制到 FAT 卷或者当目标文件系统需要 FAT 文件系统命名约定(即 8.3 个字符)时,需要 /n。目标文件系统可以是 FAT 或 NTFS。
/o 复制文件所有权与自由选择的访问控制列表(DACL) 信息。
/x 复制文件审核设置和系统访问控制列表(SACL) 信息(包含 /o)。
/exclude:filename1 [+[filename2]] [+[filename3]]
指定包含字符串的文件列表。
/y 禁止提示您确认要覆盖现存的目标文件。
/-y 提示您确认要覆盖现有目标文件。
/z 在可重启模式中通过网络复制。
/? 在命令提示符显示帮助。
/t 只复制子目录结构(即目录树),不复制文件。要复制空目录,必须包含 /e 命令行选项。
注释
使用 /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 返回的退出码,请在批处理程序的 if 命令行上使用 errorlevel 参数。有关使用“if”处理退出码的批处理程序的范例,请参阅“”。下表列出每一个退出码和说明。
退出码 说明
0 文件复制没有错误。
1 没有找到要复制的文件。
2 用户按 CTRL+C 终止了 xcopy。
4 出现了初始化错误。没有足够的内存或磁盘空间,或命令行上输入了无效的驱动器名称或语法。
5 出现了磁盘写入错误。
范例
要从驱动器A 将所有文件和子目录(包括所有空的子目录)复制到驱动器 B,请键入:
xcopy a:b: /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 语句中指示的标签,然后显示相应的消息并退出批处理程序。
适用场合
在进行连同子目录一起拷贝时很有用,在拷贝大量文件时比COPY命令要快得多。
精彩举例
精彩举例一
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 "就行!
比如你想拷贝一些文件到另一个文件下,但是涉及到只想拷贝更新后的文件,之前的不要
例句:xcopy d:\1文件\. d:\2文件/s /e/d:02-13-2011 那么后面的日期代表 只拷贝2011年 2月13日之后更新的文件,并且以此日期为参考,之后都只拷贝新文件。
精彩举例四
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运行它,你这时候可以出去玩啦。电脑会自己复制备份完成文件然后自动关闭电脑。
注意问题
下面就我遇到的一个例子说两个初学者容易遇到的问题。
1.我想用.bat批处理来运行复制 我的QQ 个人信息文件夹的内容到D 盘。只要双击一下就可以了。
于是我就开始写xcopy的命令,做了很久都没有成功,后来发现是,我的批处理文件名是xcopy.bat,
所以特别提醒大家批处理的文件名不能是一个命令。。。
然后,我的代码
“xcopy C:\Program Files\Tencent\QQ\我的QQ号 d:\我的QQ号 /e /h /d /y /r /v /f /k
pause”
提示错误,
原因是批处理里面的文件路径不能有“空格”,“Program Files”就有了一个空格,而且字符长度不支持大于8个字符的文件或者文件夹名。解决方法是用用"路径",如下
2.这样就可以复制了。但是还有个问题,就是开始复制的时候,提示“请你选择“我的QQ号”的文件类型,(F,文件/D,目录)需要选择D 才可以。
原来xcopy 有合并和生成文件的功能,系统不知道你是需要文件夹还是文件,在产生分歧的时候就询问。不过这样对我们很麻烦。
解决方法:只要在目标文件夹后面加上\就可以了,例如:
“xcopy C:\Progra~1\Tencent\QQ\我的Q~1d:\我的QQ号\ /e /h /d /y /r /v /f /k
pause“
c语言复制文件夹xcopy,C#学习基本概念---xcopy(复制文件和目录树)相关推荐
- ubuntu复制文件到另一个文件夹_简单介绍一下电脑中的文件或文件夹的复制、移动及删除的操作方式...
大家好,我是波仔,今天又来跟各位学电脑基础的朋友们分享知识,让我们一起来学习吧. 复制文件或文件夹 在我们日常操作文件或文件夹的过程中,经常会遇到需要复制一些文件或文件夹什么的,下面我们就一起来分享一 ...
- 用复制mysql/data 文件夹 下面的数据库的形式来复制数据库出现的问题
用复制mysql/data 文件夹 下面的数据库的形式来复制数据库出现的问题 用复制mysql/data 文件夹 下面的数据库的形式来复制数据库出现的问题 提示找不到表,我去看了一下,丢失了很多个表: ...
- IOl:从文件夹中找到后缀名为TXT的文件,然后复制到指定的文件夹
/*** 从文件夹中找到后缀名为TXT的文件,然后复制到指定的文件夹* @param args* @throws IOException*/public static void main(String ...
- linux剪切到另一个文件夹,linux下文件夹操作常见命令如创建、复制、剪切、重命名、清空和删除命令 实例说明...
linux下文件夹操作常见命令如创建.复制.剪切.重命名.清空和删除命令 实例说明,在home目录下有wwwroot目录,wwwroot下有sinozzz目录,即/home/wwwroot/sinoz ...
- git add 文件夹_软件测试学习资源—Git 基础使用
环境准备: 操作系统: Win7 旗舰版 64位 Git:自官网下载2.22 Windows版本,默认安装 任意位置新建一个空白文件夹:d:/B03_Git 在该文件夹中点击鼠标右键,选择" ...
- Python中文件操作和文件夹操作的学习笔记
目录 1 前言 2 工作目录设置 设置工作目录: 获取当前运行文件目录 将工作目录重置为当前运行文件的父目录 遍历文件夹中所有的子文件(包含子文件.孙文件): 3 判断文件(夹)是否存在 4 文件读写 ...
- c语言程序压缩解压缩文件夹,【转】使用VC++压缩解压缩文件夹
前言 项目中要用到一个压缩解压缩的模块, 看了很多文章和源代码, 都不是很称心, 现在把我自己实现的代码和大家分享. 要求: 1.使用Unicode(支持中文). 2.使用源代码.(不使用静态或者动态 ...
- 【幼升小信息-03】20220611批量模板制作 幼儿基本信息收集文件夹(包含PDF、Word、证件文件夹)
一.背景需求 2022年6月上海幼升小登记,由于疫情全部在网上进行,如何让家长用手机.电脑自主修改"草表"信息,如何快速从家长手中收集各类证件,就成为大班老师的工作重点. 二. ...
- 拖拽文件夹上传 一(基于Vue的文件夹上传组件)
前言 首先说一下,小弟第一次写文章,如果有什么错误 还望小哥哥 小姐姐多多包涵.如果有什么缺陷还望大家指出来 让小弟多学习. 内容划分 上传文件夹一共分两部分来写 一方面怕太长了 大家看五分钟就不想看 ...
最新文章
- 数学系学生的漫画,治愈了整个朋友圈
- 如何构建高扩展性网站?
- 会话管理:Session与Cookie
- Django项目与中间件与celery
- java 操作序列_JAVA序列化操作详解
- 云小课|大数据时代的隐私利器-GaussDB(DWS)数据脱敏
- uclinux 嵌入式linux,嵌入式操作系统uCLinux
- Java代码怎么取消订阅功能,RxJava2 中多种取消订阅 dispose 的方法梳理( 源码分析 )...
- Coin-row problem(1139)
- 架构师之路(2)---详解面向过程
- 《物联网框架ServerSuperIO教程》-19.设备驱动和OPC Client支持mysql、oracle、sqlite、sqlserver的持久化。v3.6.4版本发布...
- idea配置svn地址
- Nginx--流量限制(最有用的功能之一)
- 测量脉冲调制信号的绝对和加性相位噪声
- k8s之滚动更新、金丝雀发布、蓝绿发布
- 骨传导耳机有什么优缺点,骨传导耳机好用吗
- Java sdut acm 2402 水杯
- openvz相关资料
- Linux 编译C++程序的四种方法
- 又一款Nginx 管理可视化神器!通过界面完成配置监控,一条龙!
热门文章
- 2017淘宝年货节外围报名截止日期是什么时候?
- 巴比特 | 元宇宙每日必读:生成式AI会对下一代互联网产生怎样的影响?GPT会成为AI时代的操作系统吗?元宇宙又该何去何从?...
- Histogram Equalization in Matlab
- 碰撞检测-apollo
- Java实现在线秒杀系统(主要问题以及源码)
- String.matches() 与 Matcher.matches() 的区别
- 247. 部署Prometheus(希腊神话)
- 比尔盖茨的11条人生箴言
- 幽门螺杆菌的清除药物组合,养胃清幽,离胃癌更远一点!
- Java实现分数的四则运算