如何将整个目录替换为目标目录和子目录?

时间:2012-04-09 07:21:41

标签: windows batch-file replace cmd

只想问一下,如何用来自源的相同文件替换目标目录和子目录中的文件?假设我想要从源目录替换目标目录或文件“X”的子目录中的文件“X”,脚本必须遍历所有目录和子目录才能找到文件“X”并替换它

Example 

Source:        "C:\MyPics\New\*.*"
Destination:   "C:\MyPics\All\A\*.*"
               "C:\MyPics\All\B\1\*.*"
               "C:\MyPics\All\B\2\*.*"
               "C:\MyPics\All\C\*.*"

您有什么建议可以实现这个目标吗?

希望尽快收到你的来信。

由于

1 个答案:

答案 0 :(得分:1)

这是未经测试的,但我认为我的代码是正确的。

如果您要使用源中的单个文件替换,则

@echo off
set "src=C:\MyPics\New\"
set "dst=C:\MyPics\All\"
set "file=X"
for /f "eol=: delims=" %%F in ('dir /b /s "%dst%%file%"') do copy /y "%src%%file%" "%%F"

如果您要替换来自源的所有文件,那么

@echo off
set "src=C:\MyPics\New\*"
set "dst=C:\MyPics\All\"
for %%S in ("%src%") do (
  for /f "eol=: delims=" %%F in ('dir /b /s "%dst%%%~nxF"') do copy /y "%%S" "%%F"
)

您可以将src定义中的掩码更改为更具体,然后*