xcopy怎么复制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xcopy怎么复制相关的知识,希望对你有一定的参考价值。

我要xcopy C盘的全部文件到D盘是怎样?急~~我要拷贝c盘下全部文件,包含文件夹和全部.就是整个c盘有多大就多大的拷贝到d盘...
举个过程,要详细.
我在98启动盘在c盘下输入
c:\xcopy *.* d:
说没有这个命令?怎么回事

XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]
[/C] [/I] [/Q] [/F] [/L] [/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 显示要复制的文件。
/H 也复制隐藏和系统文件。
/R 改写只读文件。
/T 创建目录结构,但不复制文件。不
包括空目录或子目录。/T /E 包括
空目录和子目录。
/U 只复制已经存在于目标中的文件。
/K 复制属性。一般的 Xcopy 会重设只读属性。
/N 用生成的短名复制。
/O 复制文件所有权和 ACL 信息。
/X 复制文件审核设置(隐含 /O)。
/Y 禁止提示以确认改写一个
现存目标文件。
/-Y 导致提示以确认改写一个
现存目标文件。
/Z 用重新启动模式复制网络文件。

命令选项 /Y 可以预先在 COPYCMD 环境变量中设置。
这可能被命令行上的 /-Y 改写。
参考技术A C:\xcopy *.* D:\路径

注意要有空格OK本回答被提问者采纳
参考技术B c:\copy *.* d: 参考技术C c:\xcopy/y *.* d:\

“复制了无效的路径 0 文件”使用 xcopy 命令时出错

【中文标题】“复制了无效的路径 0 文件”使用 xcopy 命令时出错【英文标题】:"invalid path 0 files copied" Error while using xcopy command 【发布时间】:2014-09-15 04:31:49 【问题描述】:

您好,我有这个小命令可以批量复制文件,这会有所帮助,因为我每天会多次执行此特定复制。使用 xcopy 命令时会出现此问题。一切正常,但我收到此错误:“复制了无效的路径 0 文件”。代码如下:

C:\Windows\System32\xcopy  /Y "C:\Users\Ryan\Desktop\mmars_pub\" "C:\Users\Ryan\Desktop\Dropbox\MMARS\mmars_pub\"

我正在使用 xcopy 可执行文件的完整路径,因为我在配置路径环境变量以使其正常运行时遇到问题。我想它不应该影响结果。我在某处读到了有关“防止基于 MS-DOS 的程序检测 Windows”复选框的信息,该复选框应该可以解决该问题,但我似乎找不到。任何帮助表示赞赏。

【问题讨论】:

您使用的xcopy 命令不是基于MS-DOS 的程序。这是一个 Windows 控制台程序。 %path% 变量默认设置为使用正确的文件夹。如果您重新使用了 path 变量,请选择不同的变量名称。这仅与您必须将完整路径设置为 xcopy 命令的方式有关。 【参考方案1】:

原答案

从源文件夹路径中删除结尾的反斜杠

C:\Windows\System32\xcopy.exe  /Y "C:\Users\Ryan\Desktop\mmars_pub" "C:\Users\Ryan\Desktop\Dropbox\MMARS\mmars_pub\"

已编辑 2015/10/01

虽然原始问题使用文字路径,并且指示的解决方案将解决问题,但还有另一种选择。对于文字路径以及路径在变量内部并且可以(或不)以反斜杠结尾的情况,确保结尾反斜杠(如果存在)与引号分开就足够了,包括结尾点。

xcopy /y "x:\source\." "x:\target"
xcopy /y "%myVariable%." "x:\target"

这个结束点不会影响文件/文件夹的名称。如果有和结尾的反斜杠,附加的点将简单地引用同一个文件夹。如果没有结束反斜杠,如 windows 文件和文件夹不能以点结束其名称,它将被丢弃。

但是如果xcopy 命令的输出将被处理,请记住这个额外的点将包含在显示的路径中。


注意:解决方案高于线。如果对存在问题的原因/位置感兴趣,请继续阅读。

为什么xcopy "c:\source\" "d:\target\" 失败但xcopy "c:\source" "d:\target\" 有效?

这两个命令似乎都有有效的路径引用,而且……是的!两者都是有效的路径引用,但有两个元素共同作用导致命令失败:

文件夹引用被引用(注意:它应该被引用,引用路径是一个好习惯,因为你永远不知道它们何时会包含空格或特殊字符) xcopy 不是cmd 处理的内部命令,而是一个可执行文件

由于xcopy 是一个外部命令,它的参数不会按照cmd 解析器命令行逻辑进行处理。它们由Microsoft C startup code 处理。

这个解析器遵循两套规则,官方规则

参数由空格分隔,空格或制表符。

用双引号括起来的字符串被解释为单个参数,无论其中包含什么空格。一个引用 字符串可以嵌入到参数中。请注意,插入符号 (^) 不是 识别为转义字符或分隔符。

前面有反斜杠 \" 的双引号被解释为文字双引号 (")。

反斜杠按字面意思解释,除非它们紧跟在双引号之前。

如果偶数个反斜杠后跟双引号,则每个反斜杠 (\) 将放置在 argv 数组中 一对反斜杠 (\\),双引号 (") 是 解释为字符串分隔符。

如果奇数个反斜杠后跟双引号,则每个反斜杠 (\) 将放置在 argv 数组中 一对反斜杠 (\\) 和双引号被解释 作为剩余反斜杠的转义序列,导致文字 双引号 (") 放在 argv 中。

和无证/非官方规则 (How Command Line Parameters Are Parsed)

在双引号块之外," 开始一个双引号块。 在双引号块内," 后跟一个不同的字符(不是另一个 ")结束双引号块。 在双引号块内," 紧跟另一个 "(即"")会导致将单个 " 添加到输出中,并且 双引号块继续。

此解析器将在 "first" 参数末尾找到的序列\" 视为不结束/关闭参数的转义引号,它被视为部分或参数。而 "second" 参数的 "starting" 引号只是结束了双引号块但没有结束参数,请记住参数由空格分隔。 p>

所以虽然 似乎命令行参数是

     v           v            v......argument delimiters
      v.........v v..........v ......quoted blocks
xcopy "x:\souce\" "x:\target\"
       ^.......^   ^........^  ......argument data
       arg #1      arg #2

       arg #1 = x:\source\
       arg #2 = x:\target\

xcopy 处理的实际参数是

     v                        v .....argument delimiters
      v......................v  .....quoted block
xcopy "x:\souce\" "x:\target\"
       ^.....................^  .....argument data
      arg #1    

      arg #1 = x:\source" x:\target"

当结束反斜杠被删除或包含额外的点时,参数中的右引号不会被转义,它会关闭带引号的块,参数之间的空格将被视为分隔符。

【讨论】:

arg #1 = <x:\souce" >(去掉<>)双引号块在目标的first双引号结束。 @MayraDelgado,不,分隔符是空格。目标中的第一个引号只是关闭了引用的区域,但在它之后没有空格,所以参数继续。 如果您在构建事件中使用像 $(TargetDir) 这样的宏,那么不幸的是它们在目录中包含反斜杠,因此请注意这一点。 解决了!谢谢!它在 Visual Studio 上本地运行良好,但在使用 msbuild 时会在 Jenkins 中失败。

以上是关于xcopy怎么复制的主要内容,如果未能解决你的问题,请参考以下文章

关于copy,xcopy,robocopy三者都是复制,但作用是啥,不太清楚?

使用bat的Xcopy命令把一个目录下的指定多个不同的文件类型复制到别一个文件夹

xcopy复制文件并保留权限

XCOPY——目录复制命令

cmd,如何让xcopy命令在复制时不提示覆盖?

使用 xcopy 进行并行复制