У меня есть файл 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>
т.е. раздевание!.
Куда я иду не так? Есть идеи?