中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-07 06:31
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何批量替换多个文本中的特定字符? 查看 867 回复 3
楼 主 如何批量替换多个文本中的特定字符? 发表于 2008-01-14 16:20 ·  中国 香港 电讯盈科有限公司
新手上路
积分 14
发帖 5
注册 2008-01-14 14:25
18年会员
UID 108569
性别 男
状态 离线
在D:\test等文件夹下有n(几十或更多)个.all文件(注:其实是文本文件,但扩展名是.all),每个.all文件中都有m(几百或几千不定)行数据,每一行代表一条信息,每一行里都可能有“OK;”和“229;”这两个字符。我想把这些文件中所有“OK;”和“229;”字符都替换成“PASS;”。请问如何DOS的批处理实现?

[ Last edited by zhzhang9756 on 2008-1-14 at 05:23 PM ]
2 发表于 2008-01-17 09:25 ·  中国 香港 电讯盈科有限公司
新手上路
积分 14
发帖 5
注册 2008-01-14 14:25
18年会员
UID 108569
性别 男
状态 离线
请高手指点,急
3 发表于 2008-01-17 12:46 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
@echo off
setlocal enabledelayedexpansion
md "D:\New_test" 2>nul
for /f "delims=" %%a in ('dir /a-d/b D:\test') do (
for /f "delims=" %%i in ('type "D:\test\%%a"') do (
set "var=%%i"
set "var=!var:OK;=PASS;!"
set "var=!var:229;=PASS;!"
>>"D:\New_test\%%a" echo.!var!
))
pause

不能处理特殊字符
第一高手 第二高手

4 发表于 2008-01-21 11:12 ·  芬兰
新手上路
积分 14
发帖 5
注册 2008-01-14 14:25
18年会员
UID 108569
性别 男
状态 离线
非常感谢!!
论坛跳转: