中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-23 13:29
47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,273 会员排行
DOS批处理 & 脚本技术(批处理室) » 如何在已存在的文件中指定的位置插入数据
可打印版本  2,409 / 7
第1楼 sncffbo 发表于 2005-05-30 00:00
初级用户 发帖 12 积分 137
如何在已存在的文件中指定的位置插入数据
如有一个.txt 文件:内容为:1
2
3
4
5
我如何有dos命令在4的前一行插入一排abc,得到如下:
1
2
3
abc
4
5
请各们高手不惜告诉! 在这先谢各位了!
第2楼 willsort 发表于 2005-05-30 00:00
元老会员 发帖 1,512 积分 4,432
Re sncffb  实现此特性的最佳方案是利用文本流处理工具,比较通用的有类C的GAWK,支持正则表达式的SED等,比较简单的有LMOD等,或者利用串替换工具也可以达到类似的效果,比如HEXC\CHANGE等。等然,这些都属于第三方工具,我在彼处的经验不是很多。  如果用纯批处理实现,需要区分是否NT系列环境。如果是,可以利用相对比较简单的FOR文本解析来实现特有的功能,即判断到指定行(用关键字或者行号)时,进行特有的操作。如果非NT环境,则需要使用其它一些文本行遍历的技巧,这我在旧贴中曾经多次涉及,你可以以“文件遍历”关键字搜索论坛。
第3楼 brglng 发表于 2005-06-02 00:00
银牌会员 发帖 466 积分 1,200 来自 上海
可以用Find或者xfind之类的。哈哈,最简单的就是重新写一遍
第4楼 sncffbo 发表于 2005-06-02 00:00
初级用户 发帖 12 积分 137
我好象在哪里看见过这种用法。不象上面两位老兄说的那样,那样麻烦。只是有一个简单的 >> 解决了问题,不过还要在其前面加一句什么字段。不记得了。具体在那看到不记得,我确认是往autoexe , config ,msdos 里插入一句,但前一行好象一字段是boot .望各们高手们知道就写下来,共同发展dos之路,
第5楼 willsort 发表于 2005-06-02 00:00
元老会员 发帖 1,512 积分 4,432
Re sncffbo  简单的使用>>,只能在文本尾部添加串,而不会插入串。  实现不用第三方工具在特定地址或特征字符串后插入串仍然是比较复杂的,三楼提到的find可以用,但是需要较多的辅助语句,我写的大部分文本遍历算法中就都用到了find。
第6楼 smileseeker 发表于 2005-06-04 00:00
中级用户 发帖 83 积分 316
set a=0set b=0for /f %%i in (1.txt) do if "%%i"=="4" goto :after4 else echo %%i >>2.txt && set /a a=a+1:after4echo add_string >>2.txtfor /f %%i in (1.txt) do set /a b=b+1 && if !b! GTR %a% echo %%i >>2.txt不知道这种思路可不可以!b!好像要延缓环境变量在黑窗体中是cmd/vn在批处理中不知道怎么用请高手指点
第7楼 willsort 发表于 2005-06-06 00:00
元老会员 发帖 1,512 积分 4,432
Re smileseeker:
第8楼 smileseeker 发表于 2005-06-06 00:00
中级用户 发帖 83 积分 316
高手就是高手语句就是精练学了一招
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023