【问题标题】:Use batch script to insert a string at a particular line in XML使用批处理脚本在 XML 中的特定行插入字符串
【发布时间】:2014-04-10 16:12:28
【问题描述】:

我是编程新手。 some1 可以教我如何使用批处理脚本在 XML 文件中插入新行吗? 当前文件有前 2 行:

<?xml version="1.0"?>
<Workbook xmlns="urn:schemas-microsoft-com:xxxxxxxxx

我想在第 2 行添加一个格式字符串,所以它有:

<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:xxxxxxxxxx

它必须使用批处理文件,因为文件的其余部分是用它构建的。

干杯, 艾伦

【问题讨论】:

    标签: xml string batch-file insert newline


    【解决方案1】:
    @echo off
        setlocal enableextensions disabledelayedexpansion
        set "secondLine=^<?mso-application progid="Excel.Sheet"?^>"
        (for /f "delims=" %%a in (input.xml) do (
            echo(%%a
            if defined secondLine ( 
                echo(%secondLine%
                set "secondLine="
            )
        )) > output.xml
    

    【讨论】:

    • 那么我如何使它适用于其他行号?如果我想插入第 12 行或第 23 行怎么办?
    【解决方案2】:

    我假设您使用的是 Windows。如果您还没有 Unix Utils,我建议您先获取它并将其添加到您的 PATH

    你可以这样做

     sed "1 a <?mso-application progid=\"Excel.Sheet\"?>" Input.xml > Output.xml
     move Output.xml Input.xml
    

    请注意,sed 的 Windows 版本可能不支持 -i 选项,但如果支持,您可以将其缩短为

    sed -i "1 a <?mso-application progid=\"Excel.Sheet\"?>" Input.xml
    

    【讨论】:

    • thx Merlin,是的,我在公司 PC 上使用 Window 7,但它似乎在我下载并解压缩文件后会自动删除文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-29
    • 2014-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多