Это часть моего xml-файла:
<anyType xsi:type="xsd:string">dd32261_RealTimeRisk</anyType>
<anyType xsi:type="xsd:boolean">false</anyType>
<anyType xsi:type="xsd:string">dd32261</anyType>
Вот мой код ниже:
for /R c:\ABC\TraderFolders\%tradersoeid%\PROD %%G in (Connections.xml) do (
MOVE "%%G" "%%G.temp"
for /f "usebackq tokens=*" %%b in ("%%G.temp") do (
set write=%%b
echo !write:%tradersoeid%=%usersoeid%! >> "%%G"
)
del "%%G.temp"
)
То, что вышеупомянутый код делает, заменяет любое существование tradersoeid, которое "dd32261 "с usersoeid" ak15000 ".Это прекрасно работает.
Но я хочу заменить первый вхождение строки "dd32261" на "dd32261_ak15000" и заменить второй как есть.
Я пробовал что-то вроде этого:
set "val1=>"
set "val2=_"
set "str=%val1%%tradersoeid%%val2%"
, поэтому, когда он находит > dd32261_ , заменяйте его на> dd32261_userid
и когда он находит > dd32261 <</strong> замените его на> usersoeid <</p> Спасибо
echo off
set tradersoeid=dd32261
set usersoeid=ak15000
set ws_namestr=%tradersoeid%_%usersoeid%
set id_=%tradersoeid%_
for /R c:\ABC\TraderFolders\%tradersoeid%\PROD %%G in (Connections.xml) do (
MOVE "%%G" "%%G.temp"
pause>nul
for /F "usebackq delims=" %%b in ("%%G.temp") do (
set write=%%b
for /f %%t in ("!id_!") do echo %%t
for /F %%u in ("!ws_namestr!") do set newWrite=!write:%%t=%%u!
echo !newWrite! >> "%%G"
if not "!newWrite!" == "!write!" (
set id_=%tradersoeid%
ws_namestr=%usersoeid%
)
)
del "%%G.temp"
)