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

Windows 如何将整个目录替换为目标目录和子目录?,windows,batch-file,replace,cmd,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

我只是想问一下,如何用源目录中相同的文件替换目标目录和子目录中的文件?假设我想将目标目录或子目录中的文件“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\*.*"
你对实现这一目标有什么建议吗

希望很快收到你的来信


谢谢

这是未经测试的,但我想我的代码是正确的

如果您希望替换为源代码中的单个文件,则

@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"
)
如果要替换为源代码中的所有文件,则

@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
定义中的掩码更改为比
*

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

如果您希望替换为源代码中的单个文件,则

@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"
)
如果要替换为源代码中的所有文件,则

@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
定义中的掩码更改为比
*

更具体的掩码。您需要先搜索目标目录还是知道它们的所有路径?您需要先搜索目标目录还是知道它们的所有路径?