如何用批处理批量修改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”。 展开
 我来答
12d1a2235w652d
2017-06-10 · TA获得超过385个赞
知道小有建树答主
回答量:391
采纳率:80%
帮助的人:323万
展开全部
@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中对应的一整行。

运行前请做好原文件的备份。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式