【问题标题】:How to replace entire dir to destination dir and sub-dirs?如何将整个目录替换为目标目录和子目录?
【发布时间】:2012-04-09 19:52:50
【问题描述】:

只是想问一下,如何用源文件中的相同文件替换目标目录和子目录中的文件?假设我想用源目录中的文件“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\*.*"

您有什么建议来完成这项工作吗?

希望尽快收到您的来信。

谢谢

【问题讨论】:

  • 您需要先搜索目标目录还是知道它们的所有路径?

标签: windows batch-file replace cmd


【解决方案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 定义中的掩码更改为比* 更具体

【讨论】:

    猜你喜欢
    • 2011-06-26
    • 2011-10-09
    • 1970-01-01
    • 2013-06-21
    • 1970-01-01
    • 2015-07-17
    • 2010-12-23
    相关资源
    最近更新 更多