在批处理中 XCOPY 覆盖
Siddharth Bishnoi
2024年2月15日
Xcopy
是一个命令行实用程序,用于将一个或多个文件或目录(包括子目录)从一个位置复制到另一个位置。它类似于 copy
命令,但更强大,因为它可以将整个目录从一个位置复制到另一个位置。
它足够强大,甚至可以复制驱动器。Xcopy
是一个快速命令,它可以复制文件和文件夹,在有或没有提示的情况下覆盖现有文件,根据名称、路径或扩展名排除文件,识别更新的文件等。
从 Windows 98 开始,几乎所有 Windows 版本都支持它。它可以作为 DOS 命令在 MS-DOS 中使用 xcopy
。
xcopy
命令的语法是:
xcopy <source> <destination> </parameters>
source
- 要复制的文件的位置和名称。它必须包括文件或目录的驱动器和路径。destination
- 要复制的文件的目的地。它可以是驱动器、目录或文件名。parameters
-xcopy
命令提供的选项。可以通过运行xcopy /?
查看它们在命令提示符窗口中。
还有其他几个类似于 xcopy
的命令,有些甚至比它更强大,例如 robocopy
、rsync
、teracopy
等。但是,我们将在本文中坚持使用 xcopy
。
本教程将教授如何在使用 xcopy
命令复制文件时在没有提示的情况下覆盖目标中的所有文件。
批量复制新文件夹中的文件
要将文件从一个位置复制到另一个位置,请执行以下命令。
xcopy C:\testfolder D:\testfolder /i /s
/s
- 复制要复制的文件夹中的目录、子目录和文件,除非它们为空。/i
- 强制xcopy
假定目标是一个目录并创建一个新目录。如果不使用,系统将提示你输入目标是文件还是目录。
要仅复制目录树而不复制文件,即目录结构,请执行以下命令。
xcopy C:\testfolder D:\testfolder /t /e
/t
- 复制不包括文件的目录结构。/e
- 复制所有子目录,即使它们是空的。它与/t
和/s
选项一起使用。
输出:
如上所示,只复制目录而不复制文件。
通过批量覆盖现有文件来复制文件
要在复制时覆盖现有文件,请执行以下命令。
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
/s
- 复制要复制的文件夹中的目录、子目录和文件,除非它们为空。/i
- 强制xcopy
假定目标是一个目录并创建一个新目录。如果不使用,系统将提示你输入目标是文件还是目录。/z
- 在重新启动模式下通过网络复制,即,如果在复制过程中连接丢失,则在连接恢复时恢复。它还显示完成百分比。/w
- 显示以下消息:按任意键开始复制文件
。它等待你的响应以开始复制过程。
因此,我们讨论了如何在复制许多文件时覆盖所有现有文件而不显示提示,即它确认覆盖所有文件而不显示每个文件的提示。
xcopy
命令提供了许多其他选项;你可以通过运行 xcopy /?
来检查它们在命令提示符中。