在批处理中 XCOPY 覆盖

Siddharth Bishnoi 2024年2月15日
  1. 批量复制新文件夹中的文件
  2. 通过批量覆盖现有文件来复制文件
  3. 批量无提示覆盖所有文件复制文件
  4. 通过网络批量复制文件
在批处理中 XCOPY 覆盖

Xcopy 是一个命令行实用程序,用于将一个或多个文件或目录(包括子目录)从一个位置复制到另一个位置。它类似于 copy 命令,但更强大,因为它可以将整个目录从一个位置复制到另一个位置。

它足够强大,甚至可以复制驱动器。Xcopy 是一个快速命令,它可以复制文件和文件夹,在有或没有提示的情况下覆盖现有文件,根据名称、路径或扩展名排除文件,识别更新的文件等。

从 Windows 98 开始,几乎所有 Windows 版本都支持它。它可以作为 DOS 命令在 MS-DOS 中使用 xcopy

xcopy 命令的语法是:

xcopy <source> <destination> </parameters>
  1. source - 要复制的文件的位置和名称。它必须包括文件或目录的驱动器和路径。
  2. destination - 要复制的文件的目的地。它可以是驱动器、目录或文件名。
  3. parameters - xcopy 命令提供的选项。可以通过运行 xcopy /? 查看它们在命令提示符窗口中。

还有其他几个类似于 xcopy 的命令,有些甚至比它更强大,例如 robocopyrsyncteracopy 等。但是,我们将在本文中坚持使用 xcopy

本教程将教授如何在使用 xcopy 命令复制文件时在没有提示的情况下覆盖目标中的所有文件。

批量复制新文件夹中的文件

要将文件从一个位置复制到另一个位置,请执行以下命令。

xcopy C:\testfolder D:\testfolder /i /s

使用 xcopy 命令复制文件

  1. /s - 复制要复制的文件夹中的目录、子目录和文件,除非它们为空。
  2. /i - 强制 xcopy 假定目标是一个目录并创建一个新目录。如果不使用,系统将提示你输入目标是文件还是目录。

要仅复制目录树而不复制文件,即目录结构,请执行以下命令。

xcopy C:\testfolder D:\testfolder /t /e

使用 xcopy 命令复制目录

  1. /t - 复制不包括文件的目录结构。
  2. /e - 复制所有子目录,即使它们是空的。它与 /t/s 选项一起使用。

输出:

使用 xcopy 命令复制目录(输出)

如上所示,只复制目录而不复制文件。

通过批量覆盖现有文件来复制文件

要在复制时覆盖现有文件,请执行以下命令。

xcopy C:\testfolder D:\testfolder /i /s

覆盖现有文件(有提示)

如上图所示,它要求覆盖现有文件或所有文件。当我们在现有文件上复制许多文件时,它会为每个具有相同名称的文件显示提示。

确认每个文件太耗时。为避免这种情况,我们需要使用 /y 选项和上述命令。

批量无提示覆盖所有文件复制文件

执行以下命令复制现有文件而不提示覆盖现有文件。

xcopy C:\testfolder D:\testfolder /i /s /y

覆盖现有文件(无提示)

/y - 避免提示确认是否覆盖目的地的现有文件。

通过网络批量复制文件

xcopy C:\Videos "\\server\media\videos" /s /i /z /w
  1. /s - 复制要复制的文件夹中的目录、子目录和文件,除非它们为空。
  2. /i - 强制 xcopy 假定目标是一个目录并创建一个新目录。如果不使用,系统将提示你输入目标是文件还是目录。
  3. /z - 在重新启动模式下通过网络复制,即,如果在复制过程中连接丢失,则在连接恢复时恢复。它还显示完成百分比。
  4. /w - 显示以下消息:按任意键开始复制文件。它等待你的响应以开始复制过程。

因此,我们讨论了如何在复制许多文件时覆盖所有现有文件而不显示提示,即它确认覆盖所有文件而不显示每个文件的提示。

xcopy 命令提供了许多其他选项;你可以通过运行 xcopy /? 来检查它们在命令提示符中。