递归查找和替换文件

时间:2012-05-02 22:12:15

标签: windows batch-file cmd batch-processing

我想做的是跟随。 我想创建一些bat文件,它将递归搜索从当前目录开始的文件,并替换为我提供的文件。对于前者如果我想搜索并替换test1.txt,我打开这个迷你应用程序并编写text1.txt,并放置我想要替换的文件。

  • 风向
    • app.bat
    • test1.txt // app会递归搜索文件夹1和文件夹2,并将用test1.txt替换所有找到的结果
    • 文件夹1
    • 文件夹2

我想知道,如果因为这个原因准备好去app或bat文件?

1 个答案:

答案 0 :(得分:10)

下面的批处理文件从当前目录开始,递归搜索第一个参数中给出的文件,并将其复制(同名)第二个参数中给出的文件:

@echo off
set targetName=%~NX1
set replacementFile=%~F2
call :processFolder
goto :EOF

:processFolder
rem For each folder in this level
for /D %%a in (*) do (
   rem Enter into it, process it and go back to original
   cd %%a
   if exist "%targetName%" (
      copy "%replacementFile%" "%targetName%" /Y
   )
   call :processFolder
   cd ..
)
exit /B

例如:

app test1.txt c:\data\replacementfile.txt