0
我試圖通過BAT修改XML文件(實際上只是一個屬性的值,版本)。以下是我的XML文件的一個簡短的樣本:用BAT編輯XML
<?xml version="1.0" encoding="utf-8"?>
<APPS>
<APP Version="Some.Value">
<!-- APP icon. -->
<Icon>C:\Program Files (x86)\Somewhere</Icon>
<Url>http://www.somewhere.com</Url>
</APP>
</APPS>
下面是一個BAT文件:
@ECHO off
SETLOCAL DISABLEDELAYEDEXPANSION
SET anotherVariable=New.Value
(FOR /F "usebackq delims=" %%a IN (Sample.xml) DO (
SET "line=%%a"
SETLOCAL ENABLEDELAYEDEXPANSION
SET "newLine=!line: <APP =!"
IF "!newLine!" neq "!line!" (
SET "newLine= <APP Version="%anotherVariable%">"
ECHO.!newLine!
ENDLOCAL
) ELSE (
SET "line=!line:*:=!"
ECHO.!line!
ENDLOCAL
)
)) > SampleOut.xml
但下面是SampleOut.xml:
<?xml version="1.0" encoding="utf-8"?>
<APPS>
<APP Version="New.Value">
<!-- APP icon. -->
\Program Files (x86)\Somewhere</Icon>
//www.somewhere.com</Url>
</APP>
</APPS>
問題與這些路徑相關的XML行(Icon和Url標籤)被破壞。我希望有人能幫助我。
你好,謝謝你的回覆,這個偉大的工程。 我只遇到了1個問題,那就是版本屬性後面的其他屬性丟失了。儘管如此,對我來說簡單的解決方法是將Version作爲最後一個屬性,但爲了將來的參考,您將如何保留版本後面的其他屬性,例如: –
請參閱我編輯的答案。 – foxidrive
再次感謝你,它完美的作品。 –