用.bat 批处理在.xml文件指定行添加内容

例如

<AAA>
<BBB>1</BBB>
<CCC>C:\Program Files\findit\findit.exe< /CCC>
</AAA>

想要在</AAA>上边加入<DDD>C:\Program Files\findit\findit.exe </DDD>  <EEE>C:\Program Files\findit\findit.exe </EEE>

实现效果如下

<AAA>
<BBB>1</BBB>
<CCC>C:\Program Files\findit\findit.exe< /CCC>

<DDD>C:\Program Files\findit\findit.exe </DDD>

<EEE>C:\Program Files\findit\findit.exe </EEE>
</AAA>

参考GPT和自己的思路:

您可以使用以下的代码来实现在指定行添加内容的功能:

@echo off

setlocal enabledelayedexpansion

set add1=<DDD>C:\Program Files\findit\findit.exe </DDD>
set add2=<EEE>C:\Program Files\findit\findit.exe </EEE>

set counter=1
set found=0

(for /f "tokens=* delims=" %%a in ('type input.xml') do (
    if "!found!"=="1" (
        echo !add1!
        echo !add2!
        set found=0
    )
    echo %%a
    if "%%a"=="</AAA>" (
        set found=1
    )
)) > output.xml

其中,add1add2是你想要添加的内容,counter用于计数行数,found用于标记是否找到指定行。for循环用于遍历输入文件,如果找到指定行,则在该行的上方添加add1add2,否则将该行原封不动地输出,并在找到指定行的情况下将found标记为1。最终输出到输出文件output.xml

需要注意到,在此代码中,你需要将input.xml替换为你的.xml文件名。