中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-03 14:10
48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 批处理 多个查找容 在多个文件中 同时查找替换
可打印版本  712 / 0
第1楼 gigigaga 发表于 2007-03-06 06:12
新手上路 发帖 3 积分 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 ]
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023