中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-09 05:57
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » [已解决]如何在.inf文本某两行之间插入一行数据
可打印版本  2,203 / 16
第1楼 suntb 发表于 2008-03-07 16:52
高级用户 发帖 277 积分 581
[已解决]如何在.inf文本某两行之间插入一行数据
假如test.inf内容如下,如何在某两行之间插入一行数据?

比如说在
 AddReg_1-2
 AddReg_1-3
中间插入一行
 AddReg_1-4
使小节内容变成
 AddReg_1-1
 AddReg_1-2
 AddReg_1-4
 AddReg_1-3



Version_1
Version_2
Version_3


AddReg_1-1
AddReg_1-2
AddReg_1-3


DelReg_1
DelReg_2
DelReg_3


Strings_1
Strings_2
Strings_3


[ Last edited by suntb on 2008-3-8 at 01:57 PM ]
第2楼 suntb 发表于 2008-03-07 16:56
高级用户 发帖 277 积分 581
或者也可以理解成要在指定行
AddReg_1-2
下面插入一行数据
AddReg_1-4
第3楼 terse 发表于 2008-03-07 18:31
银牌会员 发帖 946 积分 2,404
@echo off
for /f "delims=" %%i in (test.inf) do (
echo %%i
if "%%i"=="AddReg_1-2" echo AddReg_1-4
)
pause
第4楼 523066680 发表于 2008-03-07 18:49
银牌会员 发帖 1,133 积分 2,362
不明白……
第5楼 suntb 发表于 2008-03-07 19:00
高级用户 发帖 277 积分 581
Originally posted by terse at 2008-3-7 18:31:
@echo off
for /f "delims=" %%i in (test.inf) do (
echo %%i
if "%%i"=="AddReg_1-2" echo AddReg_1-4
)
pause



terse兄的代码测试无反应 文本没有任何变动
第6楼 abcd 发表于 2008-03-07 19:08
银牌会员 发帖 739 积分 1,436
terse兄的代码本来就没有改动inf文件,

仅仅是显示而已
第7楼 suntb 发表于 2008-03-07 19:18
高级用户 发帖 277 积分 581
Originally posted by abcd at 2008-3-7 19:08:
terse兄的代码本来就没有改动inf文件,

仅仅是显示而已


可是啥都没显示 只有pause的任意键提示

搜索了下原来帖子 在一个帖中willsort曾经给过一段代码
不过部分是乱码了 无法运行 哪位兄弟能帮忙还原下吗?

现将帖子http://www.cn-dos.net/forum/viewthread.php?tid=15788
第7楼willsort版主的回复贴在下面



[ Last edited by suntb on 2008-3-7 at 07:19 PM ]
第8楼 terse 发表于 2008-03-07 20:01
银牌会员 发帖 946 积分 2,404
Originally posted by suntb at 2008-3-7 19:00:



terse兄的代码测试无反应 文本没有任何变动

这样呢? 记得备份原文件
@echo off
for /f "delims=" %%i in (test.inf) do (
>>test_tmp.tmp echo %%i
if "%%i"=="AddReg_1-2" >>test_tmp.tmp echo AddReg_1-4
)
move /y "test_tmp.tmp" "test.inf" 2>NUL
pause
第9楼 abcd 发表于 2008-03-07 20:42
银牌会员 发帖 739 积分 1,436
难道inf文件是UNICODE的??
第10楼 ceii 发表于 2008-03-07 23:49
初级用户 发帖 45 积分 115
用sed最简洁: sed -i "/AddReg_1-2/aAddReg_1-4" test.inf
第11楼 HAT 发表于 2008-03-08 00:19
版主 发帖 5,017 积分 9,023
第12楼 DC2008 发表于 2008-03-08 02:04
新手上路 发帖 3 积分 6
哈哈,初到贵地,没想到是块我找了很久的宝地
我是一个新手,兴会兴会
第13楼 suntb 发表于 2008-03-08 13:36
高级用户 发帖 277 积分 581
Originally posted by HAT at 2008-3-8 00:19:
@echo off
for /f %%t in (1.txt) do echo %%t >>2.txt && if "%%t"== ...



还是不行 估计是遇到.inf中的符号无法处理了

用more转下测试通过 不知道是否有其他方法可以不用more


[ Last edited by suntb on 2008-3-8 at 01:53 PM ]
第14楼 523066680 发表于 2008-03-08 18:45
银牌会员 发帖 1,133 积分 2,362
dos是万能的!他甚至不只是万能!
第15楼 nipo 发表于 2008-05-10 01:43
中级用户 发帖 106 积分 228
Originally posted by suntb at 2008-3-8 01:36 PM:



还是不行 估计是遇到.inf中的符号无法处理了

用more转下测试通过 不知道是否有其他方法可以不用more
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023