Board logo

标题: 如何搜索某个字段后在下面添加行? [打印本页]

作者: mydosp     时间: 2010-12-24 23:15    标题: 如何搜索某个字段后在下面添加行?

例如:
有个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]字段本身下面还有几行字符。


请问如何用批处理实现这两个字段下面字符的添加?本人才学批处理,请赐教。
作者: Hanyeguxing     时间: 2010-12-25 06:29
要求:此文件ANSI编码,最前、最后不能有空格等(被处理后的文件将删除空行)
@echo off&setlocal enableDelayedExpansion
(for /f "eol=€ delims=" %%a in (Txtsetup.sif) do (
    echo %%a
    if "%%a"=="[HiveInfs.Fresh]" echo AddReg = settings.inf,update
    if "%%a"=="[SourceDisksFiles]" (
    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 ]
作者: mydosp     时间: 2010-12-25 12:37
Hanyeguxing,批处理试验成功。
但是这个批处理,把要添加的文本(Txtsetup.sif)的最前、最后的空格以及文本中间的空行都删除了,可是这些我都想保留。应该怎么办呢?谢谢你的帮助。

还有,我试验了下面这个批处理,但是处理速度太慢了,不如你的快,但是这个不删除空行。请看:
……………………………………………………………………………………………………
@echo off
for /f "delims=" %%a in (TXTSETUP.SIF) do (
    echo/%%a|findstr /xic:"[SourceDisksFiles]" >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 ]
作者: Hanyeguxing     时间: 2010-12-25 19:18
保留空格、空行,允许行首为;分号字符(但不允许行首为:冒号字符):
@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!"=="[HiveInfs.Fresh]" echo AddReg = settings.inf,update
    if "!b!"=="[SourceDisksFiles]" (
        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 ]
作者: mydosp     时间: 2010-12-25 19:27    标题: 谢谢

谢谢!这个批处理很成功。我正在研究xp安装版如何定做,谢谢您对我的帮助。今后,还要向您讨教呢。