Windows 的复制命令可以处理多个文件吗?

Windows 的复制命令可以处理多个文件吗?

在 Unix 系统上,此命令将两个文件复制到名为的文件夹中folder

cp foo bar folder

在 Windows 上,这不是一个有效的命令:

copy foo bar folder
The syntax of the command is incorrect.

我可以使用 Windows 的内置工具通过一个命令执行此操作吗?

答案1

for %I in (file1.txt file2.txt file3.txt) do copy %I c:\somedir\

您可以在批处理文件中或直接从命令行使用它。虽然不如 *nix 简洁,但还是可以的。

答案2

Windows 包括机器人复制内置,可以通过单个命令复制多个文件:

robocopy a\source\folder a\dest\folder file1.docx file2.exe

答案3

值得注意的是,如果您有一个通配符表达式而不是明确的文件列表,那么 COPY 会将所有文件复制到目标目录:

COPY srcdir\* destdir\
COPY *sy?.* anotherdestdir\

任何有 *nix 背景的人都会发现,while 有效而显式列表无效,这尤其令人困惑,因为在类 Unix shell 中,它们对于程序来说是无法区分的——shell 会扩展任何通配符,因此无论哪种方式,程序最终都会得到一个显式的文件列表。这不适用于此处,因为 Windows 命令 shell 将通配符直接传递给程序,并由程序进行扩展。(此外,COPY 是 shell 中的内置命令,而不是 Linux 上的 cp 等外部程序,因此原则上它可能违反有关命令行参数的通常规则,但这实际上并不适用于此处。)

答案4

随着Windows 上的 Ubuntu 上的 Bash,现在您可以使用原生的 Linux 语法:

cp foo bar folder

相关内容