![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-09 21:29 |
共 47,811 主题排行 / 349,897 发帖 / 今日 2 篇 / 48,255 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助]求一个批处理命令:替换文本文件中的指定字符 |
| 可打印版本 2,492 / 28 |
| 第1楼 xugq | 发表于 2008-09-20 17:23 |
| 初级用户 发帖 24 积分 56 | |
|
[求助]求一个批处理命令:替换文本文件中的指定字符 我是搞电子的.对电脑也懂得一点,现在有个问题想请高手们帮个忙.
例如有一个文本文件内容如下: =c:\aer =d:\aer =e:\aer .......... 想吧其中的=c替换成=d 但是其中的=c中的c是不固定内容,有可能是e也有可能是f 我在论坛上研究了好半天了.也没搞明白. 希望高手们能帮个忙.谢谢了. ───────────────── 版务记录 ───────────────── 执行:HAT 操作:在帖子标题中增加搜索关键字 说明:原标题"求一个批处理命令!"不利于论坛搜索 处罚:因属论坛新人,不予积分处罚 提示:请访问 {7326}论坛新手必读,所有人的基本行为准则 ───────────────── 版务记录 ───────────────── [ Last edited by HAT on 2008-9-24 at 09:04 PM ] |
|
| 第2楼 HAT | 发表于 2008-09-20 17:34 |
| 版主 发帖 5,017 积分 9,023 | |
| 第3楼 xugq | 发表于 2008-09-20 19:55 |
| 初级用户 发帖 24 积分 56 | |
|
非常感谢.一会我试试.这里的气氛真是好啊.我还有好多的问题想问啊.不过我想自己先好好的研究下关于批处理的问题.有不明白的地方我还要请教大家.谢谢了.
|
|
| 第4楼 xugq | 发表于 2008-09-21 15:35 |
| 初级用户 发帖 24 积分 56 | |
|
我还有个问题想请大家给帮个忙.就是2楼朋友给的这个脚本的问题.
其实是我没有说清楚.我的文本是这样的. asdfsd=c:\qer ddkklsss=c:\qer ........................ 其中c:\qer中的C 是不固定文本,有可能是d也有可能是e 想把他给换成e,请问应该怎么写这个批处理命令啊? 2楼朋友给的命令用了有就连=前边的字符也没有了.. 希望热心的朋友给帮个忙. |
|
| 第5楼 HAT | 发表于 2008-09-21 16:14 |
| 版主 发帖 5,017 积分 9,023 | |
|
Re 4楼 |
|
| 第6楼 xugq | 发表于 2008-09-21 16:21 |
| 初级用户 发帖 24 积分 56 | |
|
收到了.非常感谢HAT 朋友..谢谢了.
|
|
| 第7楼 xugq | 发表于 2008-09-21 16:53 |
| 初级用户 发帖 24 积分 56 | |
|
朋友.还是非常的感谢你.不过还是有个问题啊.还要再麻烦下.我都不好意思了.
就是原来的文本是这样的. asdfsd=c:\qer\aadff ddkklsss=c:\qer\ddee asdsd=a:\qer\aadff dklsss=g:\qer\ddee ............................ 现在用这个批处理变成这样了 asdfsd=c: ddkklsss=c: asdsd=a: dklsss=g: ............................ 希望变成这样子的. asdfsd=e:\qer\aadff ddkklsss=e:\qer\ddee asdsd=e:\qer\aadff dklsss=e:\qer\ddee ............................ 不知道是不是能实现啊. 真是不好意思..有什么电子方面的东西希望我能帮上忙. |
|
| 第8楼 HAT | 发表于 2008-09-21 17:02 |
| 版主 发帖 5,017 积分 9,023 | |
|
Re 7楼 你在修改5楼代码的时候是不是改错了?
我这里运行可以得到正确的结果: C:\Test>type test.bat |
|
| 第9楼 xugq | 发表于 2008-09-21 17:13 |
| 初级用户 发帖 24 积分 56 | |
|
哦.对不起是我错了.
不过文本中有些原来是这样的文本也给改了. 原来 LogFam1=ANA,U LogFam2=BGA,U LogFam3=BPF,U LogFam4=BQF,U LogFam5=CAP,C LogFam6=CFP,U LogFam7=CLC,U LogFam8=CMO,U LogFam9=CON,J LogFam10=CQF,U 改成 LogFam1=e: LogFam2=e: LogFam3=e: LogFam4=e: LogFam5=e: LogFam6=e: LogFam7=e: LogFam8=e: LogFam9=e: LogFam10=e: 希望这些能不能不改啊?还望您帮忙. 真是不好意思. |
|
| 第10楼 HAT | 发表于 2008-09-21 17:24 |
| 版主 发帖 5,017 积分 9,023 | |
|
Re 9楼 |
|
| 第11楼 xugq | 发表于 2008-09-21 17:31 |
| 初级用户 发帖 24 积分 56 | |
|
收到了.这次很成功.谢谢了.
不过不好意思的是... 还是有个问题.有些地方多出来了个=号不知为什么 例如 原文本 [directories] SystemDir=c:\pads2005\2005PADS\SDD_HOME\Programs FileDir=c:\pads2005\PADS Projects UserDir=c:\pads2005\Settings LibDir=c:\pads2005\Libraries ReuseDir=c:\pads2005\PADS Projects\Reuse CAMDir=c:\pads2005\PADS Projects\Cam 现在是 [directories]= SystemDir=e:\pads2005\2005PADS\SDD_HOME\Programs FileDir=e:\pads2005\PADS Projects UserDir=e:\pads2005\Settings LibDir=e:\pads2005\Libraries ReuseDir=e:\pads2005\PADS Projects\Reuse CAMDir=e:\pads2005\PADS Projects\Cam 在[directories]=后边多了一个=号.不知为什么.. |
|
| 第12楼 HAT | 发表于 2008-09-21 21:14 |
| 版主 发帖 5,017 积分 9,023 | |
|
Re 11楼 友情提示:下次提问,记得在顶楼一次性就把自己的文本内容完整的贴出来:) |
|
| 第13楼 xugq | 发表于 2008-09-21 21:28 |
| 初级用户 发帖 24 积分 56 | |
|
恩.是啊.我第一次问问提.原来都是想知道什么就去网上查查.呵呵.这次我实在是没办法了.用了好多的文本替换工具都不理想.还用到了change这个工具.上网这么长时间以来还是第一次遇到你这么热心的人.刚刚试验了下.效果非常的理想.我以后也一定要好好学习下dos的批处理命令.谢谢你了.
|
|
| 第14楼 HAT | 发表于 2008-09-21 22:37 |
| 版主 发帖 5,017 积分 9,023 | |
|
Re 16楼 用change.exe也挺好的,一行代码搞定,呵呵。
|
|
| 第15楼 ceii | 发表于 2008-09-22 16:51 |
| 初级用户 发帖 45 积分 115 | |
|
对于这种替换,我觉得最好是使用支持正则表达式的工具,如 sed 。
sed "s/=[a-z]:/=e:/" a.txt 楼主每一层提出的问题都可以用这一行代码解决。 |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |