如果我有该文件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