String 我需要在包含特定字符串的行上方插入一个文本";[顶部]”;批处理编程

String 我需要在包含特定字符串的行上方插入一个文本";[顶部]”;批处理编程,string,batch-file,text,insert,find,String,Batch File,Text,Insert,Find,例如,文件abc.txt包含以下文本,我必须在[TOP]上方添加文本“infra”: ;plcd ;abcd valueof=a,b,c [TOP] 输出应该是这样的: ;plcd ;abcd valueof=a,b,c infra [TOP] 如何在批处理编程中做到这一点 @echo off setlocal set "file=abc.txt" set "start=" for /f usebackq^ delims^=^ eol^= %%a in

例如,文件
abc.txt
包含以下文本,我必须在[TOP]上方添加文本“infra”:

;plcd
;abcd
valueof=a,b,c
[TOP]
输出应该是这样的:

;plcd
;abcd
valueof=a,b,c
infra
[TOP]
如何在批处理编程中做到这一点

@echo off
    setlocal

    set "file=abc.txt"

    set "start="
    for /f usebackq^ delims^=^ eol^=  %%a in ("%file%") do (
        if not defined start set "start=1" & break > "%file%"
        if "%%~a"=="[TOP]" (>>"%file%" echo(infra)
        >>"%file%" echo(%%a
    )

对于文件中包含数据的每一行,如果它包含
[TOP]
,则返回
infra
。在它之后,回显读到的行

到目前为止,您尝试了什么?
sed
不是Windows上的标准安装,但是如果使用正确的工具,这种问题很容易解决。我是批处理编程新手Shaktiman..需要以下方面的帮助:(所以这不是一个新手农场。别生气,伙计……如果你很容易回答的话,那对我会有很大帮助,否则就离开它。汉克斯:)