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
)
[テストスペース]のすべてのインスタンスは、ユーザーが定義した値に置き換えられます。
しかし、私の問題は、バッチファイルが感嘆符(!)マークのインスタンスを削除してしまうことです。
<property name="title"><![CDATA[TEST2]]></property>
バッチスクリプトが実行されると、それはして上記を交換されています:
<property name="title"><[CDATA[TEST2]]></property>
すなわちだから、例えばXMLでは、このような行があります!を取り除く!
どこが間違っていますか?何か案は?
[文字列を見つけ、バッチファイル内の特定の文字を置換する]の複製が可能です。(http://stackoverflow.com/questions/17085650/find-a-string-and-replace-specific-letters-in-batch-file ) –