中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何在已存在的文件中指定的位置插入数据
作者:
标题: 如何在已存在的文件中指定的位置插入数据 上一主题 | 下一主题
sncffbo
初级用户




积分 137
发帖 12
注册 2005-5-25
状态 离线
『楼 主』:  如何在已存在的文件中指定的位置插入数据

如有一个.txt  文件:内容为:1
                                              2
                                              3
                                              4
                                               5
我如何有dos命令在4的前一行插入一排abc,得到如下:
                                             1
                                              2
                                              3
                                               abc
                                              4
                                              5
请各们高手不惜告诉!  在这先谢各位了!

2005-5-30 00:00
查看资料  发送邮件  发短消息 网志  OICQ (21159527)  编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 2 楼』:  

Re sncffb  实现此特性的最佳方案是利用文本流处理工具,比较通用的有类C的GAWK,支持正则表达式的SED等,比较简单的有LMOD等,或者利用串替换工具也可以达到类似的效果,比如HEXC\CHANGE等。等然,这些都属于第三方工具,我在彼处的经验不是很多。  如果用纯批处理实现,需要区分是否NT系列环境。如果是,可以利用相对比较简单的FOR文本解析来实现特有的功能,即判断到指定行(用关键字或者行号)时,进行特有的操作。如果非NT环境,则需要使用其它一些文本行遍历的技巧,这我在旧贴中曾经多次涉及,你可以以“文件遍历”关键字搜索论坛。



※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2005-5-30 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
brglng
银牌会员

永遠的DOS~~~



积分 1200
发帖 466
注册 2005-2-1
来自 上海
状态 离线
『第 3 楼』:  

可以用Find或者xfind之类的。哈哈,最简单的就是重新写一遍



32位才是DOS未来的希望
个人网志:http://sololand.moe
2005-6-2 00:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
sncffbo
初级用户




积分 137
发帖 12
注册 2005-5-25
状态 离线
『第 4 楼』:  

我好象在哪里看见过这种用法。不象上面两位老兄说的那样,那样麻烦。只是有一个简单的 >> 解决了问题,不过还要在其前面加一句什么字段。不记得了。具体在那看到不记得,我确认是往autoexe , config ,msdos 里插入一句,但前一行好象一字段是boot .望各们高手们知道就写下来,共同发展dos之路,

2005-6-2 00:00
查看资料  发送邮件  发短消息 网志  OICQ (21159527)  编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 5 楼』:  

Re sncffbo  简单的使用>>,只能在文本尾部添加串,而不会插入串。  实现不用第三方工具在特定地址或特征字符串后插入串仍然是比较复杂的,三楼提到的find可以用,但是需要较多的辅助语句,我写的大部分文本遍历算法中就都用到了find。



※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2005-6-2 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
smileseeker
中级用户




积分 316
发帖 83
注册 2005-3-1
状态 离线
『第 6 楼』:  

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在批处理中不知道怎么用请高手指点

2005-6-4 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 7 楼』:  

Re smileseeker:
::VarDelay.bat - 在批处理中使用延迟变量
::Will Sort - 2005/06/05 - CMD@WinXP
@echo off
if "%1"=="" cmd /v:on /c%0 cmdshell && goto :EOF
:: Run in cmd shell with delayed environment variable expansion
for %%v in (1 2 3 4 5 6 7 8 9) do set ev=%%v && echo !ev!

:: Insert.bat - 在文本文件中的指定行插入一行
:: Will Sort - 2005/06/05 - CMD@WinXP
@echo off
for /f %%t in (1.txt) do echo %%t >>2.txt && if "%%t"=="4" echo insert_string>>2.txt




※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2005-6-6 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
smileseeker
中级用户




积分 316
发帖 83
注册 2005-3-1
状态 离线
『第 8 楼』:  

高手就是高手语句就是精练学了一招


2005-6-6 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: