中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-25 03:34
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何搜索某个字段后在下面添加行? 查看 1,434 回复 4
楼 主 如何搜索某个字段后在下面添加行? 发表于 2010-12-24 23:15 ·  中国 山东 泰安 宁阳县 联通
新手上路
积分 0
发帖 3
注册 2010-12-21 20:47
15年会员
UID 179622
性别 女
状态 离线
例如:
有个Txtsetup.sif文件,其中含有 [HiveInfs.Fresh]和 [SourceDisksFiles]两个字段。

我想在 [HiveInfs.Fresh]下面添加:
AddReg = settings.inf,update一行字符,

在 [SourceDisksFiles]字段下面分别添加两行字符:
settings.inf =1,,,,,,_x,3,,3
settings.reg =100,,,,,,,2,0,0

需要注意的是[HiveInfs.Fresh]和[SourceDisksFiles]字段本身下面还有几行字符。


请问如何用批处理实现这两个字段下面字符的添加?本人才学批处理,请赐教。
2 发表于 2010-12-25 06:29 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
要求:此文件ANSI编码,最前、最后不能有空格等(被处理后的文件将删除空行)
@echo off&setlocal enableDelayedExpansion
(for /f "eol=€ delims=" %%a in (Txtsetup.sif) do (
echo %%a
if "%%a"=="" echo AddReg = settings.inf,update
if "%%a"=="" (
echo settings.inf =1,,,,,,_x,3,,3
echo settings.reg =100,,,,,,,2,0,0
)
))>han.ye
move han.ye Txtsetup.sif


[ Last edited by Hanyeguxing on 2010-12-25 at 06:31 ]
3 发表于 2010-12-25 12:37 ·  中国 山东 泰安 宁阳县 联通
新手上路
积分 0
发帖 3
注册 2010-12-21 20:47
15年会员
UID 179622
性别 女
状态 离线
Hanyeguxing,批处理试验成功。
但是这个批处理,把要添加的文本(Txtsetup.sif)的最前、最后的空格以及文本中间的空行都删除了,可是这些我都想保留。应该怎么办呢?谢谢你的帮助。

还有,我试验了下面这个批处理,但是处理速度太慢了,不如你的快,但是这个不删除空行。请看:
……………………………………………………………………………………………………
@echo off
for /f "delims=" %%a in (TXTSETUP.SIF) do (
echo/%%a|findstr /xic:"" >nul && (
(echo/%%a
ehco settings.inf=1,,,,,,_x,3,,3
ehco settings.reg=100,,,,,,,2,0,0)>>newfile.txt
)||(echo/%%a>>newfile.txt)
)

copy /y newfile.txt TXTSETUP.SIF >nul && del newfile.txt
………………………………………………………………………………………
谢谢指教啊!

[ Last edited by mydosp on 2010-12-25 at 17:17 ]
4 发表于 2010-12-25 19:18 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
保留空格、空行,允许行首为;分号字符(但不允许行首为:冒号字符):
@echo off&setlocal enableDelayedExpansion
(for /f "tokens=1* delims=:" %%a in ('findstr /n .* "Txtsetup.sif"') do (
echo/%%b
set b=%%b
set b=!b: =!
if "!b!"=="" echo AddReg = settings.inf,update
if "!b!"=="" (
echo settings.inf =1,,,,,,_x,3,,3
echo settings.reg =100,,,,,,,2,0,0
)
))>han.ye
move han.ye Txtsetup.sif


[ Last edited by Hanyeguxing on 2010-12-25 at 19:30 ]
5 谢谢 发表于 2010-12-25 19:27 ·  中国 山东 泰安 联通
新手上路
积分 0
发帖 3
注册 2010-12-21 20:47
15年会员
UID 179622
性别 女
状态 离线
谢谢!这个批处理很成功。我正在研究xp安装版如何定做,谢谢您对我的帮助。今后,还要向您讨教呢。
论坛跳转: