如何用批处理批量修改xml文件的内容?

有两个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”。

@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中对应的一整行。

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

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网