如何用批处理批量修改xml文件的内容? 5
有两个xml文件,里面都有436个<BillCode="XXXX"内容,现在想把A.XML文件里面的<BillCode="XXXX"全部替换成B.XML文件里面的<Bil...
有两个xml文件,里面都有436个 <Bill Code="XXXX"内容,现在想把A.XML文件里面的<Bill Code="XXXX"全部替换成B.XML文件里面的<Bill Code="XXXX"。例如A文件里面第一个Bill Code="001",第二个Bill Code="011";B文件里面的第一个Bill Code="100",第二个Bill Code="002";需要把“001”换成“100”,“011”换成“002”。
展开
1个回答
展开全部
@echo off
setlocal enabledelayedexpansion
for /f "delims=▓ tokens=* eol=▓" %%a in (B.xml) do (
set "ln=%%a"
set "t=!ln!"
set "t=!t:Bill Code=a!"
if "!t!" neq "!ln!" (
set "ln=!ln:^<=^^<!"
set "ln=!ln:^>=^^>!"
echo !ln!>>temp1.tmp
)
)
set ctr=0
for /f "delims=▓ tokens=* eol=▓" %%a in (A.xml) do (
set "ln=%%a"
set "t=!ln!"
set "t=!t:Bill Code=a!"
if "!t!" neq "!ln!" (
set read=false
set /a ctr+=1
set ctr2=0
for /f "delims=▓ tokens=* eol=▓" %%b in (temp1.tmp) do (
set /a ctr2+=1
if !read!==false if "!ctr!"=="!ctr2!" (
set "ln=%%b"
set read=true
)
)
)
set "ln=!ln:^<=^^<!"
set "ln=!ln:^>=^^>!"
echo !ln!>>temp2.tmp
)
del /f /q A.xml
rename temp2.tmp A.xml
del /f /q temp1.tmp
echo Done.
pause
把它放在xml文件旁运行,它会把A.xml中带有bill code关键字的行整行替换成B.xml中对应的一整行。
运行前请做好原文件的备份。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |