xcopy怎么复制
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xcopy怎么复制相关的知识,希望对你有一定的参考价值。
我要xcopy C盘的全部文件到D盘是怎样?急~~我要拷贝c盘下全部文件,包含文件夹和全部.就是整个c盘有多大就多大的拷贝到d盘...
举个过程,要详细.
我在98启动盘在c盘下输入
c:\xcopy *.* d:
说没有这个命令?怎么回事
[/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三者都是复制,但作用是啥,不太清楚?