Заменить текст в .bat файле - PullRequest
1 голос
/ 15 февраля 2012

У меня есть 2 папки в папке C: \ durvi \ mmi_test \ mmidurvi, которые C: \ durvi \ mmi_test \ mmidurvi \ durvyauu C: \ durvi \ mmi_test \ mmidurvi \ sgdf
Обе эти папки имеют файл Connections.xml
Я хотел бы заменить любое вхождение ql99015 на dd32261
Пример формата файла приведен ниже

<code><pre><anyType xsi:type="xsd:string">ql99015</anyType>  

<anyType xsi:type="xsd:string">ql99015_flowreeng_Anthony</anyType>  

Я пробовал что-то вроде ниже, но не работает:

for /D %%f in (c:\durvi\mmi_test\mmidurvi\*) do (  
cd %%f  
if not exist "Connections.xml" (echo this file does not exist)&goto :eof  
SETLOCAL=ENABLEDELAYEDEXPANSION  
ren "Connections.xml" "Connections1.xml"  
for /f %%a in (Connections1.xml) do (    
set write=%%a  
echo %%a   
if !write!=="ql99015" set write="dd32261"  
echo !write! >> Connections.xml  
)  
del "Connections1.xml"  
cd..  
)  

Заранее спасибо за помощь!

1 Ответ

3 голосов
/ 16 февраля 2012

Измените скрипт на:

SETLOCAL ENABLEDELAYEDEXPANSION
for /r %%a in (connections.xml) do (
  move "%%a" "%%a.temp"
  for /f "usebackq tokens=*" %%b in ("%%a.temp") do (
    set write=%%b
    echo !write:ql99015=dd32261! >> "%%a"
  )
  del "%%a.temp"
)
...