[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 请问如何用bat批处理向xml文件中添加内容和修改内容?

一个xml文件内容如下:
<AAA〉
<BBB>1</BBB>
<CCC>C:\Program Files\findit\findit.exe< /CCC>
</AAA>


(1)希望通过批处理<CCC>C:\Program Files\findit\findit.exe< /CCC>之后加入的内容如下:
<CCC>C:\Program Files\ggtv\ggtv.exe</CCC>

(2)希望通过批处理修改<BBB>与</BBB>之间
的内容如下:
<BBB>0</BBB>

请教高手如何编写这两个批处理?

  1. sed "s/<CCC>C:\\Program Files\\findit\\findit.exe<\/CCC>/&\n<CCC>C:\\Program Files\\ggtv\\ggtv.exe<\/CCC>/" a.xml >b.xml
复制代码
  1. sed "s/<BBB>1<\/BBB>/<BBB>0<\/BBB>/" a.xml >c.xml
复制代码

TOP

回复 2# awk


  谢谢回复! 如果此XML文件保存在C:盘根目录下,完整的批处理应如何写呢???

TOP

回复 3# nickzhou
  1. sed "s/<BBB>1<\/BBB>/<BBB>0<\/BBB>/" C:\a.xml >C:\c.xml
复制代码

TOP

不能识别 SED 命令哦,还有其他办法吗?

TOP

回复 5# nickzhou


命令行工具 sed.exe 下载地址:
http://bbs.bathome.net/thread-1114-1-1.html

TOP

既然是xml,为何不直接用DOM操作?

  1. @set @n=0//&cscript.exe -e:jscript "%~f0"&exit/b
  2. f = "C:\\a.xml";
  3. xmldoc = new ActiveXObject("Msxml2.DOMDocument");
  4. xmldoc.async = false;
  5. xmldoc.load(f);
  6. els = xmldoc.getElementsByTagName("CCC");
  7. for (i=0; i<els.length; i++)
  8. {
  9.     el = els[i];
  10.     if (el.text=="C:\\Program Files\\findit\\findit.exe")
  11.     {
  12.         self = el.cloneNode(true);
  13.         el.parentNode.insertBefore(self,el);
  14.         el.text = "C:\\Program Files\\ggtv\\ggtv.exe";
  15.     }
  16. }
  17. els = xmldoc.getElementsByTagName("BBB");
  18. for (i=0; i<els.length; i++)
  19.     els[i].text="0";
  20. fso = new ActiveXObject("Scripting.FileSystemObject");
  21. fso.OpenTextFile(f+".new.xml",2,true,-1).write(xmldoc.xml);
复制代码

TOP

第一条命令就执行不了,CMD一闪而过,请帮忙再解决下

TOP

回复 8# nickzhou


7楼代码保存为C:\test.bat
打开一个CMD窗口,在里面运行C:\test.bat
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 9# Batcher


    老大,是不是一定要用到第三方工具才能修改XML文件?

TOP

回复 10# 秋风·飞扬


    不是。BAT或VBS也行。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 11# Batcher


   老大你的意思是bat+vbs?

TOP

回复 12# 秋风·飞扬


    不是。没有+
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表