Windows命令行命令复制文件是什么?


Answers:


44

该命令xcopy是您要寻找的。例:

xcopy source destination /E /C /H /R /K /O /Y

上面的命令会将源复制到目标,文件和目录(包括空目录),不会因错误而停止,将复制隐藏文件和系统文件,将覆盖只读文件,将保留属性和所有权/ ACL信息,并禁止显示提示覆盖现有的目标文件。

/E    Copies directories and subdirectories, including empty ones.
      Same as /S /E. May be used to modify /T.
/C    Continues copying even if errors occur.
/H    Copies hidden and system files also.
/R    Overwrites read-only files.
/K    Copies attributes. Normal Xcopy will reset read-only attributes.
/O    Copies file ownership and ACL information.
/Y    Suppresses prompting to confirm you want to overwrite an
      existing destination file.

有关更多信息,请键入xcopy /?和您的命令行。


2
Windows的未来版本包括RoboCopy。在Vista的XCOPY中:“注意:Xcopy现在已过时,请使用Robocopy。”
乔治·齐奥科斯

1
有趣的是,两年后,您的评论后,乔治,XCOPY仍然是“统治世界”在Windows 7

请注意,xcopy不附带嵌入式Windows XP环境(POSReady 2009等)。
Epoc

我建议编辑以列出所有这些选项...!如果您不自动化它,/E /H并且可能/K /O会通过一些方便的提示使您走得很远
KCD 2015年

不要忘记/J,它可以防止在复制大文件时出现XCopy错误。我不确定他们为什么不将其
设为


2

在批处理文件中:

if not exists locationB\nul mkdir locationB
copy locationA\file locationB

if not exists检查参数以查看其是否存在,但仅适用于文件。要检查目录是否存在,您需要查找一个名为“ nul”的“伪文件”-如果目录存在,则检查此文件的存在将始终返回true。

复制行将file在目录中调用的文件复制到该文件locationAlocationB并使用相同的名称命名该文件。如果要同时重命名文件,也可以这样做:

copy locationA\file locationB\newfilename

2

如果要同步副本和其他高级功能(忽略某些文件夹,仅包括某些通配符),请查看robocopy。包括在Vista和更高版本中,早期版本中是可选的(来自资源工具包工具)。


对于任何重要的事情,我也将使用robocopy。我似乎还记得同步大量文件时与xcopy相比在性能上的巨大差异。
Kara Marfia

1

如果要创建备份脚本,请使用ROBOCOPY。xcopy已被弃用,并可能在不久的将来被淘汰。robocopy可以做xcopy可以做的一切。它也更加灵活和可靠。使用robocopy创建脚本将使它们过时。


  1. 使用robocopy轻松复制文件夹。robocopy命令替换xcopy命令。它可以快速复制整个文件夹,而不必担心定义内容。例如,要将C:\ tools目录的所有内容复制到新文件夹D:\ backup \ tools,请输入以下内容:

    robocopy C:\tools D:\backup\tools /e
    

    / e修饰符告诉robocopy包含所有子目录。这包括空文件夹。robocopy将自动复制隐藏文件和系统文件。如果目标位置不存在新目录,它将创建新目录。

  2. 镜像目录。镜像目录非常适合进行备份。robocopy的mirror选项会将所有内容从源复制到目标。然后它将删除源中不存在的任何目标。这样可以确保您的备份仅包含文件的最新版本。例如,要将C:\ Users \ My Documents镜像到D:\ backup \ My Documents,请输入以下内容:[4]

    robocopy "C:\Users\My Documents" "D:\backup\My Documents" /mir
    

    此功能将保留原始文件的所有权限。

  3. 启用重新启动。您可能希望包括在复制过程中断开连接的情况下重新启动进程的功能。

    robocopy "C:\Users\My Documents" "D:\backup\My Documents" /z
    
  4. 记录复制过程。robocopy允许您创建一个日志文件。这可以帮助您查明问题或生成复制内容的存档。

    robocopy "C:\Users\My Documents" "D:\backup\My Documents" /log+:<filename>.txt
    

    / log +修饰符将附加现有的日志文件,而不是覆盖它。如果您只想覆盖旧的日志文件,请使用/log:.txt。


0

xcopy将为您创建目录结构。技巧是使用/ I选项,并在文件名末尾添加一个星号,以便xcopy认为您正在复制多个文件,否则它将询问您目标名是所需的文件名还是所需的目录名。例如。

xcopy /I c:\<SourceDir>\<SourceFile> c:\<TargetDirThatDoesNOTExist>

我也会看一下RoboCopy,但是您需要从资源工具包中获取它,因为只有在Vista中才在Windows中提供。


-1

上面的命令使用源文件的名称创建一个附加目录级别。所以... xcopy / I srcdir \ dir1 \ dir2 \ file1.txt * destdir \ dir1 \ dir2 \ file1.txt导致destdir \ dir1 \ dir2 \ file1.txt \ file1.txt


1
回答这样一个古老的问题是没有道理的,该问题已经有一个可以接受的答案,并且没有为您的答案增加任何价值。
alphamikevictor 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.