我有一个.xml文件 - 让我们说A.xml。该文件包含“版本节点”
示例:
<Root>
<Version>2.5</Version>
</Root>
现在,我想通过读取具有以下内容的.txt文件,动态地用不同的数字替换版本的值:
2.5
3.5
这意味着我需要在A.xml中用'3.5'替换'2.5'字符串。
我需要在窗口批处理文件(.bat)文件的帮助下完成。
答案 0 :(得分:1)
这应该有效:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
TYPE NUL>tempOutput.xml
SET line=0
SET from=
SET to=
FOR /F %%a IN (a.txt) DO (
IF !line!==0 SET from=%%a
IF !line!==1 SET to=%%a
SET /a line=!line!+1
)
ECHO replacing %from% with %to%...
FOR /F %%a IN (a.xml) DO (
SET currentLine=%%a
SET currentLine=!currentLine:%from%=%to%!
ECHO !currentLine!>>tempOutput.xml
)
DEL /q a.xml
MOVE tempOutput.xml a.xml
PAUSE
首先,我们创建一个临时文件(tempOutput.xml)。然后我们读取a.txt,假设它只有两行,第一行包含旧版本号,第二行包含新版本。
现在我们逐行读取a.xml并将旧版本号的任何外观替换为新版本,并将修改后的行存储在临时文件中。
最后,我们删除旧文件,并将其替换为已修改的文件,将其从tempOutput.xml重命名为a.xml。
编辑:是的,您可以简化代码并缩短代码,但我认为这更容易理解。