繁体   English   中英

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

[英]Windows batch file - replace a string in an XML file

我有以下 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 批处理文件编程将“Value2”替换为“ServerName”。

任何人都可以帮助我,因为我是 Windows 批处理编程的新手?

Batch 会遇到 <、>、^ 和 & 字符的问题。 这会起作用,但 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

请使用之类的工具来编辑 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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM