嗯!旺仔 2021-06-12 14:15 采纳率: 0%
浏览 49

用.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>

  • 写回答

1条回答 默认 最新

  • 「已注销」 2023-03-17 08:56
    关注

    参考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文件名。

    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料