在 Windows 中,给定一个新文件“foo.txt”,我可以递归搜索目录中匹配该文件名的文件并用我的新文件替换它们吗?

在 Windows 中,给定一个新文件“foo.txt”,我可以递归搜索目录中匹配该文件名的文件并用我的新文件替换它们吗?

如果我有该文件C:\foo.txt,我想递归搜索C:\OtherDir匹配的文件foo.txt并用替换它们C:\foo.txt

这可能吗?

答案1

您可以使用 DOS REPLACE 命令

替换 [d:][路径]文件名 [d:][路径][/A][/P][/R][/S][/U][/W]

目的:用来自不同存储位置的同名文件替换已存储的文件。

此命令将目标路径指定中的文件替换为源位置中同名的文件。您可以使用通配符(?和 *)来指示源目录中的文件名组。您不能使用此命令替换隐藏文件或系统文件。

选项

/A - 添加源路径指定中指定的、目标路径指定中不存在的文件。通过使用此选项,您可以有选择地将文件添加到目录:源路径指定中与目标指定中的文件同名的文件不会受到影响。此选项不能与 /S 选项结合使用。

/P - 在替换每个文件之前显示提示,让您逐个文件决定是否允许替换。

/R - 替换目标目录中的只读文件和不受保护的文件。如果没有此选项,任何替换只读文件的尝试都将导致错误消息,并且替换过程将终止。

/S - 对目标目录及其内的所有子目录均起作用。您不能将 /A 选项与此选项一起使用。

/U — 替换目标驱动器或目录中比源驱动器上的对应文件更旧的文件。

/W — 在开始替换过程之前等待您插入磁盘。

例子

替换 *.dat a: /u

“/u” 非常重要。它表示“更新”,并告诉 replace 命令仅复制那些 (a) 也在目标目录中找到且 (b) 比目标目录中的对应文件更新的源文件。

您还可以使用 replace 仅复制目标目录中不存在的文件 - 即仅复制新文件。例如:

替换 *.dat a: /a

这被解释为“将当前目录中所有带有“.dat”扩展名但尚未存在于 a: 驱动器中的文件复制到 a: 驱动器”。

为了维护给定硬盘目录中所有文件的最新备份副本,您可以同时使用以下一对替换命令:

替换 c:\india a:\india /u

替换 c:\india a:\india /a

相关内容