中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] »
作者:
标题: 怎样批量替换字符串 上一主题 | 下一主题
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 16 楼』:  



  Quote:
Originally posted by nipo at 2008-4-28 08:30 PM:
刚才试验了你的代码,真的非常高效,而且通用性强。

测试了一个比较复杂的文本,内容如下:

/////////////////////////////////////////////////////////////// ...

我说的高效是指速度快,用for /r是用for /f速度的两倍,(这个你可以测试)
------------------------
这个帖子是比较早的了,以前没有掌握endlocal所以以为会对某些字符过滤,看到你回帖现在才补上,其实你认真看我的代码有bug,会对;开头的行略去的,
我的代码和terse的代码基本上没什么区别。。。
再完善下:
@echo off
for /r d: %%i in (*.txt) do (
     for /f "eol= delims=" %%a in (%%~si) do (
     set a=%%a
setlocal enabledelayedexpansion
     set b=!a:他=她!
     echo.!b!>>"%%~dpni"_已替.txt
endlocal
)    )
但还感觉可能对某些字符失效,望高人再完善



山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2008-4-28 22:28
查看资料  发短消息 网志   编辑帖子  回复  引用回复
nipo
中级用户





积分 228
发帖 106
注册 2008-4-26
状态 离线
『第 17 楼』:  

多谢你了!也看了你的一些其他贴子,很敬佩。

看到你的代码后,我一直在学习是怎么个作用机制。

承蒙夸奖,其实我学批处理时间不长。以前对涉及字符的处理缺乏认识,最近才知道,以前干的都是粗活儿,字符处理在批处理中的威力很大的。

2008-4-28 23:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jvive
初级用户

替身



积分 122
发帖 17
注册 2008-3-27
状态 离线
『第 18 楼』:  

那里,都是学习,我只是早来你几个月,别这么客气。
不过我现在的感觉是搞字符处理还是别用cmd,你学sed,要么VBS,他们高效且通用。



进入网盘(各种工具)
2008-4-28 23:55
查看资料  发短消息 网志  OICQ (275928264)  编辑帖子  回复  引用回复
nipo
中级用户





积分 228
发帖 106
注册 2008-4-26
状态 离线
『第 19 楼』:  



  Quote:
Originally posted by nipo at 2008-4-28 08:30 PM:
刚才试验了你的代码,真的非常高效,而且通用性强。

测试了一个比较复杂的文本,内容如下:

/////////////////////////////////////////////////////////////// ...

测试过程中,屡次修改,中间碰到几次小问题,可能是我操作上有错误。最近一次出现这样一个错误结果:在新文本中间的空行处出现”她=他“字符串。经仔细查找,发现是源文件被改成这样。改回来之后又正常了。

---------------------------------------------------------------------------------------------------------------

这个表述有点问题:

新文本是没有空行的,源文本才有。我反复修改测试之后,竟然在新、旧文本的2段之间出现批处理中的”她=他“字符串。不知怎么搞的。
并且在测试期间,还出现过“找不到驱动器”的错误提示,而经检查,路径没有错误。

斗胆怀疑一下:有没有可能在设置延迟变量方面存在什么问题?

2008-4-29 00:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
nipo
中级用户





积分 228
发帖 106
注册 2008-4-26
状态 离线
『第 20 楼』:  

sed、VBS我也想学,真的。不过,我是实用主义者,急用先学,急用现学,我就是这样摸到批处理这条路上来的,觉得比学编程来得直接~~

[ Last edited by nipo on 2008-4-29 at 12:17 AM ]

2008-4-29 00:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: