Windows批处理文件 - 替换XML文件中的字符串

时间:2011-11-02 06:54:34

标签: batch-file xml

我有以下XML文件:

<?xml version="1.0"?>
    <configuration>
      <startup>
        <supportedRuntime version="v2.0.50727"/>
      </startup>
      <appSettings>
        <add key="Name1" value="Value1"/>
        <add key="Name2" value="Value2"/>
        <add key="Name3" value="Value3"/>
      </appSettings>
      <runtime>
        <legacyUnhandledExceptionPolicy enabled="true"/>
      </runtime>
    </configuration>

我需要使用Windows Batch文件编程将“Value2”替换为“ServerName”。

因为我是Windows批处理编程的新手,有人可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

批次与&lt ;,&gt;,^和&amp;字符。 这样可行,但JScript / VBScript脚本(如其中一条评论中引用的)是一个更好的解决方案。

将“ORIGINAL”更改为要搜索的文本,并将“REPLACE”更改为新文本。我建议使用Windows脚本来学习JScript。

@echo off
for /f "tokens=* delims=" %%f in ('type sometext.txt') do CALL :DOREPLACE "%%f"

GOTO :EOF
:DOREPLACE
SET INPUT=%*
SET OUTPUT=%INPUT:ORIGINAL=REPLACE%

for /f "tokens=* delims=" %%g in ('ECHO %OUTPUT%') do ECHO %%~g>>out.txt

EXIT /b

:EOF

答案 1 :(得分:0)

请使用之类的旨在编辑xml的工具:

xmlstarlet ed -u "//add[@value='Value2']/@value" -v ServerName input.xml
<?xml version="1.0"?>
<configuration>
  <startup>
    <supportedRuntime version="v2.0.50727"/>
  </startup>
  <appSettings>
    <add key="Name1" value="Value1"/>
    <add key="Name2" value="ServerName"/>
    <add key="Name3" value="Value3"/>
  </appSettings>
  <runtime>
    <legacyUnhandledExceptionPolicy enabled="true"/>
  </runtime>
</configuration>
相关问题