我有以下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批处理编程的新手,有人可以帮忙吗?
答案 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)
请使用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>