批处理如何实现修改XML指定内容并输出整个文档

对于批处理,一直处于ping tracert ipconfig 阶段

现在想将
<?xml version="1.0" encoding="utf-8" ?>
<Root>
<VerAll ver="11944" />
<GameVer GameID="0" ver="18" />
<GameVer GameID="404" ver="1006" />
<GameVer GameID="504" ver="1007" />
</Root>
将其中的<GameVer GameID="404" ver="1006" /> 改成 <GameVer GameID="404" ver="1007" />
------------------------------------------------------------------------------------------------------
输出新xml文本 或者在原文本上改
<?xml version="1.0" encoding="utf-8" ?>
<Root>
<VerAll ver="11944" />
<GameVer GameID="0" ver="18" />
<GameVer GameID="404" ver="1007" />
<GameVer GameID="504" ver="1007" />
</Root>
大神帮解解惑

第1个回答  2017-09-11
@echooffsetlocalenabledelayedexpansionfor/f"delims=▓tokens=*eol=▓"%%ain(B.xml)do(set"ln=%%a"set"t=!ln!"set"t=!t:BillCode=a!"if"!t!"neq"!ln!"(set"ln=!ln:^=^^>!"echo!ln!>>temp1.tmp))setctr=0for/f"delims=▓tokens=*eol=▓"%%ain(A.xml)do(set"ln=%%a"set"t=!ln!"set"t=!t:BillCode=a!"if"!t!"neq"!ln!"(setread=falseset/actr+=1setctr2=0for/f"delims=▓tokens=*eol=▓"%%bin(temp1.tmp)do(set/actr2+=1if!read!==falseif"!ctr!"=="!ctr2!"(set"ln=%%b"setread=true)))set"ln=!ln:^=^^>!"echo!ln!>>temp2.tmp)del/f/qA.xmlrenametemp2.tmpA.xmldel/f/qtemp1.tmpechoDone.pause把它放在xml文件旁运行,它会把A.xml中带有billcode关键字的行整行替换成B.xml中对应的一整行。运行前请做好原文件的备份。追问

能否详细一点,最好是有格式,这看的很费劲

相似回答
大家正在搜