【发布时间】:2010-12-02 10:11:23
【问题描述】:
我有一个 XML 文件,我有一个批处理文件来搜索该文件中的特定字符串,将其替换为用户定义的字符串,然后将其输出到新的 XML 文件:
@echo off > entities_1.xml
setLocal EnableDelayedExpansion
if exist entities_1.xml del entities_1.xml
set /p name= What is the new space NAME?
for /f "tokens=* delims= " %%G in (entities.xml) do (
set str=%%G
set str=!str:[Test Space]=[%name%]!
echo !str! >> entities_1.xml
)
这可行,并且 [Test Space] 的任何实例都将替换为用户定义的值。
然而,我的问题是批处理文件还删除了感叹号 (!) 标记的实例。因此,例如在 XML 中有类似这样的行:
<property name="title"><![CDATA[TEST2]]></property>
当批处理脚本运行时,它将上面的替换为:
<property name="title"><[CDATA[TEST2]]></property>
即去掉!。
我哪里错了?有什么想法吗?
【问题讨论】:
标签: batch-file