标题: 批处理 多个查找容 在多个文件中 同时查找替换
[打印本页]
作者: gigigaga
时间: 2007-3-6 06:12
标题: 批处理 多个查找容 在多个文件中 同时查找替换
供大家,参考, 改进 (批处理运行后,出现的问题: 替换后" ! " 符号丢失)
-------------------------------------------------
rem 以下批处理可以实现 在多个文件中同时查找多个内容 并同时替换多个内容
rem 将如下批处理文件保存为: rp.bat, 再运行: cmd /v:on /c rp.bat
rem 本人在XP下测试通过
@echo on
setlocal
set DPATH=c:\test
set FILETYPE=*.txt
rem 查找内容
set SCONTENT1=AAAAAAAA
set SCONTENT2=BBBBB
set SCONTENT3=BBB
set SCONTENT4=AAA1
set SCONTENT5=AAA2
set SCONTENT6=AAA3
set SCONTENT7=AAA4
set SCONTENT8=AAA5
set SCONTENT9=AAA6
set SCONTENT10=AAA7
set SCONTENT11=AAA8
set SCONTENT12=AAA9
set SCONTENT13=AAA10
set SCONTENT14=AAA11
set SCONTENT15=AAA12
set SCONTENT16=TTTTTT
set SCONTENT17=bigdottt
rem 替换内容, 一一对应上面的替换
set DCONTENT1="abc def"
set DCONTENT2=houses
set DCONTENT3=jj
set DCONTENT4="Mobile Tele"
set DCONTENT5="Telone"
set DCONTENT6=Intene
set DCONTENT7=Table
set DCONTENT8="Doctor Ss"
set DCONTENT9=Furnishings
set DCONTENT10=Tool
set DCONTENT11=Glas
set DCONTENT12=Telescope
set DCONTENT13=Camera
set DCONTENT14="Toily Series"
set DCONTENT15="Other Ts"
set DCONTENT16=ffff
set DCONTENT17=......
set TMPFILE=%random%.tmp
for /r %DPATH% %%i in ( %FILETYPE% ) do (
if exist %TMPFILE% ( del /f/q %TMPFILE% )
for /f "tokens=*" %%j in ('type "%%i"') do (
set ATMP=%%j
set "ATMP= !ATMP:%SCONTENT1%=%DCONTENT1%!"
set "ATMP= !ATMP:%SCONTENT2%=%DCONTENT2%!"
set "ATMP= !ATMP:%SCONTENT3%=%DCONTENT3%!"
set "ATMP= !ATMP:%SCONTENT4%=%DCONTENT4%!"
set "ATMP= !ATMP:%SCONTENT5%=%DCONTENT5%!"
set "ATMP= !ATMP:%SCONTENT6%=%DCONTENT6%!"
set "ATMP= !ATMP:%SCONTENT7%=%DCONTENT7%!"
set "ATMP= !ATMP:%SCONTENT8%=%DCONTENT8%!"
set "ATMP= !ATMP:%SCONTENT9%=%DCONTENT9%!"
set "ATMP= !ATMP:%SCONTENT10%=%DCONTENT10%!"
set "ATMP= !ATMP:%SCONTENT11%=%DCONTENT11%!"
set "ATMP= !ATMP:%SCONTENT12%=%DCONTENT12%!"
set "ATMP= !ATMP:%SCONTENT13%=%DCONTENT13%!"
set "ATMP= !ATMP:%SCONTENT14%=%DCONTENT14%!"
set "ATMP= !ATMP:%SCONTENT15%=%DCONTENT15%!"
set "ATMP= !ATMP:%SCONTENT16%=%DCONTENT16%!"
set "ATMP= !ATMP:%SCONTENT17%=%DCONTENT17%!"
echo !ATMP! >>%TMPFILE%
)
move /y %TMPFILE% %%i
)
endlocal
----------------------
[
Last edited by gigigaga on 2007-3-5 at 05:21 PM ]