![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-26 01:21 |
共 47,812 主题排行 / 349,910 发帖 / 今日 0 篇 / 48,264 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 如何将文本文件里面的符号替换成空格? |
| 可打印版本 4,297 / 16 |
| 第1楼 hhihh | 发表于 2006-05-13 12:28 |
| 新手上路 发帖 4 积分 12 | |
|
如何将文本文件里面的符号替换成空格? 谢谢了,用批处理的方式,文件见附件
内容是2006|2007|2008|2009 附件 hhh.txt (19 bytes) |
|
| 第2楼 3742668 | 发表于 2006-05-13 12:36 |
| 荣誉版主 发帖 718 积分 2,013 | |
|
只要把每一行的内容保存到变量中,再用set命令改造就行了。给出的例子只能操作文本文件的第一行,要想操作多行,可以用for命令,或者用vbs脚本的scripting.filesystemobjects对象和split函数。 |
|
| 第3楼 hhihh | 发表于 2006-05-13 13:49 |
| 新手上路 发帖 4 积分 12 | |
|
谢谢版主的解答,请帮忙写一个能处理上千条纪录的程序好吗?
最好是那个用FOR命令的,能看懂,嘿嘿 不是我懒,我刚开始学习DOS命令,但是工作中用到的太多了 再次感谢版主了 |
|
| 第4楼 hhihh | 发表于 2006-05-13 14:01 |
| 新手上路 发帖 4 积分 12 | |
|
能把处理后的信息保存到原来的文件里面吗?
|
|
| 第5楼 3742668 | 发表于 2006-05-13 14:17 |
| 荣誉版主 发帖 718 积分 2,013 | |
|
可以参考这个贴子里面的vbs脚本,可以实现你要求的功能。
只需要在弹出的对话框中输入 "|:= " 就可以了。 |
|
| 第6楼 hhihh | 发表于 2006-05-13 14:41 |
| 新手上路 发帖 4 积分 12 | |
Originally posted by 3742668 at 2006-5-13 14:17: 看了一下,非常好,谢谢了 |
|
| 第7楼 fan927 | 发表于 2006-05-25 15:24 |
| 初级用户 发帖 31 积分 82 | |
|
用sed方便一些,
sed "s/a/b/g" t.txt \\将t.txt中所以的字符a替换为字符b. find "o" t.txt|sed "s/tt/xx/g" \\将t.txt文件里面所以包含字符"o"的行中的"tt"字符替换为字符"xx" sed是linux里的经典命令之一,现在被一些高人嫁接到dos下,和批处理结合功能非常强大,灵活.还有很多高级用法,可以参考linux教程里sed命令.和linux下用法基本相同.这个命令只有80多k,在网上可以搜的到. [ Last edited by fan927 on 2006-5-25 at 15:26 ] |
|
| 第8楼 willsort | 发表于 2006-05-25 19:02 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re fan927:
"sed是linux里的经典命令之一,现在被一些高人嫁接到dos下" sed的设计构思应该发源于Unix下的编辑器ed,是 Eric S. Raymond 在91年前后为GNU组织所设想的开源操作系统所编写的一个字符流编辑器,因为是开源程序,所以很快出现了各种平台下的移植版本,而Howard Helman在当年所改写的 HHSED 提供了Unix@SUN4和DOS@PC两个平台下的运行版本。而那时候Linux才刚刚诞生,后来伴随着POSIX标准和Linux实现的成熟,sed的GNU版本才应用到了Linux中。 |
|
| 第9楼 fan927 | 发表于 2006-05-25 20:11 |
| 初级用户 发帖 31 积分 82 | |
Originally posted by willsort at 2006-5-25 19:02: 涨见识了,多谢willsort版主. 不过不知道这么优秀的命令为什么dos下没有呢?我觉得它对文本中字符的操作完全可以用"随心所欲"来形容.这正是批处理缺乏的. |
|
| 第10楼 willsort | 发表于 2006-05-25 23:05 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re fan927:
请注意8楼的这句话:“而Howard Helman在当年所改写的 HHSED 提供了Unix@SUN4和DOS@PC两个平台下的运行版本”。也就是说,早在sed刚出现的91年就已经有DOS下的sed版本了,只不过因为它是遵循GPL的开源软件,所以只能作为第三方工具而存在,不可能被微软包含在它的MS-DOS/Windows发行包中。 另外,随着GNU sed发展的日益成熟,其DOS16和Win32平台的移植品越来越强大,所以它逐渐像微软的软件一样成为事实标准,而HHSED则渐渐悄无声息了,其原因一则缺乏维护,二则它本就是GNU sed的Mod。 [ Last edited by willsort on 2006-5-25 at 23:16 ] |
|
| 第11楼 mylovelyqq | 发表于 2006-11-29 03:19 |
| 初级用户 发帖 25 积分 170 | |
Originally posted by 3742668 at 2006-5-13 12:36 PM: set str=%str:|= % 这句是什么意思啊,实在是不懂 |
|
| 第12楼 ccwan | 发表于 2006-11-29 03:24 |
| 金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊 | |
Originally posted by mylovelyqq at 2006-11-29 03:19: 替换变量”str“中的”|“为空格 |
|
| 第13楼 mylovelyqq | 发表于 2006-11-29 03:30 |
| 初级用户 发帖 25 积分 170 | |
Originally posted by ccwan at 2006-11-29 03:24 AM: 我知道是这个功能,这是set 的什么用法呀,查帮助没说吧,你能帮我分析一下这句吗,谢了 |
|
| 第14楼 mylovelyqq | 发表于 2006-11-29 03:35 |
| 初级用户 发帖 25 积分 170 | |
|
ccwan,你别老是不说清楚就没音了呀,光一个结果,原因,过程,理由呢
|
|
| 第15楼 ccwan | 发表于 2006-11-29 03:38 |
| 金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊 | |
Originally posted by mylovelyqq at 2006-11-29 03:30: 帮助中有啊,在第三页。%PATH:str1=str2% |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |