中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-07 17:15
48,041 主题排行 / 350,128 发帖 / 今日 3 篇 / 48,252 会员排行
DOS批处理 & 脚本技术(批处理室) » 如何在INF文件不连续重复数据行第一处下插入数据
可打印版本  735 / 4
第1楼 suntb 发表于 2008-03-08 14:14
高级用户 发帖 277 积分 581
如何在INF文件不连续重复数据行第一处下插入数据
原来开的帖子中的问题 “如何在.inf文本某两行之间插入一行数据 ”
借用HAT兄还原的Will Sort版原来的代码
再加上more转下去除符号“”的限制,已经基本解决

现有一新问题另开帖讨论下,如何在INF文件中存在不连续的多行重复数据,如果在其中的第一次出现的位置行下插入一行,而其他的重复数据行保持不变?
即假如test.inf内容如下时


Version_1
Version_2
Version_3


AddReg_1-1
AddReg_1-2
AddReg_1-3


DelReg_1
DelReg_2
DelReg_3


AddReg_2-1
AddReg_2-2
AddReg_2-3


AddReg_3-1
AddReg_3-2
AddReg_3-3


Strings_1
Strings_2
Strings_3

小节名共出现三处,如何在第一个下面插入一行AddReg_1-0使第一个小节内容变成如下情况,而其他的重复小节下面无变化?


AddReg_1-0
AddReg_1-1
AddReg_1-2
AddReg_1-3


[ Last edited by suntb on 2008-3-8 at 02:16 PM ]
第2楼 suntb 发表于 2008-03-08 14:17
高级用户 发帖 277 积分 581
有的INF中数据不会重复 有的会重复

是我对问题没考虑周全 导致一个问题分两次提问 麻烦大家了

另外一楼中原来通过的代码为了排除“”使用了more

是否有其他方法可以不用more就实现同样效果?

[ Last edited by suntb on 2008-3-8 at 02:18 PM ]
第3楼 terse 发表于 2008-03-08 15:35
银牌会员 发帖 946 积分 2,404
简化一下 另编码问题 加more
@echo off
for /f "delims=" %%i in ('more test.inf') do (
>>temp.txt echo %%i
if "%%i"=="" if not defined %%i set %%i=a &>>temp.txt echo AddReg_1-0
)
pause

[ Last edited by terse on 2008-3-8 at 03:55 PM ]
第4楼 suntb 发表于 2008-03-08 23:57
高级用户 发帖 277 积分 581
Originally posted by terse at 2008-3-8 15:35:
简化一下 另编码问题 加more
@echo off
for /f "delims=" %%i in ('more test.inf') do (
>>temp.txt echo %%i
if "%%i"=="" if not defined %%i s ...


谢谢 代码测试可行

if not defined 以前没接触过

整理了下两种插入数据方式

第5楼 suntb 发表于 2008-03-09 11:31
高级用户 发帖 277 积分 581
昨天自个琢磨了下 用了个笨办法实现同样效果
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023