[英]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
请使用xmlstarlet之类的工具来编辑 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.