中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-09 04:14
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何实现批量替换? 查看 1,944 回复 17
16 发表于 2008-05-28 10:21 ·  中国 四川 内江 电信
初级用户
积分 62
发帖 25
注册 2008-05-27 09:36
18年会员
UID 119803
性别 男
状态 离线
Originally posted by zw19750516 at 2008-5-28 10:05 AM:

兄弟的这个代码远胜于我的,是我又犯了效率错误,同时也想复杂了(本来就是一个简单的连续替换)请楼主使用此代码进行替换处理。

[ Last edited by zw19750516 on 2008-5-28 at 10:11 AM ]

呵呵,我是初学者,都看看
17 发表于 2008-05-28 13:39 ·  中国 江苏 常州 武进区 电信
银牌会员
★★★
积分 2,404
发帖 946
注册 2005-09-08 13:44
20年会员
UID 42345
状态 离线
写好一个一看前面都有高的啊 还是发出来了

@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (a.txt) do (
set str=%%i
set str=!str:^<= !
set str=!str:^>= !
for %%a in (!str!) do for /f "tokens=1* delims=<>" %%x in ('findstr "<%%a>" b.txt') do set str=!str:%%x=%%y!
set str=!str: =!
echo !str!
)
pause
简单!简单!再简单!
18 发表于 2008-06-29 16:34 ·  中国 四川 成都 电信
初级用户
积分 62
发帖 25
注册 2008-05-27 09:36
18年会员
UID 119803
性别 男
状态 离线
Originally posted by pusofalse at 2008-5-28 03:52 AM:
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in (a.txt) do (
set str=%%a
call :lp
)
pause>nul&goto :eof


:lp
for /f "tokens=1,2" %%a in ...

巨慢的说,那个对照表文件里有6000多行,正文文本里有多少我不知道了,但是光纯文本就有15MB作用,这样的速度恐怕要开机1个月才完事儿
论坛跳转: