中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]把某行固定字符串后面的字符串改成指定的字符串
« [1] [2] »
作者:
标题: [已结]把某行固定字符串后面的字符串改成指定的字符串 上一主题 | 下一主题
ktv98
初级用户





积分 112
发帖 81
注册 2008-4-11
状态 离线
『第 16 楼』:  



  Quote:
Originally posted by lxmxn at 2008-12-2 03:27 AM:
@echo off
xml ed -u "/KuGoo/Plugin/@ModulesCount" -v "1" -i "/KuGoo/Plugin" -t "attr" -n "PluginPath" -v "C:\Program Files\KuGou\KuGou2008\ktv98\Plugins\\" -i "/KuGoo/Plugin" -t "attr" -n "Module0" -v "dsp_ktv1.dll|0" KuGoo.xml | xml fo > #.xml
move /y #.xml KuGoo.xml

我试了不行.一点反应都没有.



CN-DOS批处理室非官方QQ群①:61377162 ②:70174619 ③:75070617
请勿尝试同时加多个群
2008-12-3 20:43
查看资料  发送邮件  发短消息 网志  OICQ (408130581)  编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 17 楼』:  



  Quote:
Originally posted by ktv98 at 2008-12-3 20:43:


我试了不行.一点反应都没有.

天啊,快被你们这些人给气疯了!!!!
难道你一点脑筋都不肯动么????
思考一下会瘦你几斤肉是吧?
我已经回答的这么详细了,还“一点反应都没有”!!!!
你看看我的这里,怎么就有反应呢?
我现在彻底的明白了为什么willsort,无奈何,3742668,est,9527,vkill,bjsh他们为什么要离开这里了!
唉。。。。。。。。。
D:\lxmxn\work\perl\test\new>type KuGoo.xml
锘??xml version="1.0" encoding="UTF-8"?>
<KuGoo version="5.0">
  <Misc DefaultDownPath="F:\KuGou\"/>
  <Player Mute="0" Volume="100" PlayListFormVisible="1" EQFormVisible="0" LRCFormVisible="1" WebFormVisible="1" MiniMo
  <Equalizer Enable="0" PreampValue="0" BalanceValue="50" EQSound3DValue="0" PresetIndex="0" BandsGain="0,0,0,0,0,0,0,
  <Lyric LRCSavePath="C:\Program Files\KuGou\KuGou2008\Lyric\" LRCStayOnTop="1" AutoShowLRC="1" AutoSaveLRCModify="1"
  <Plugin ModulesCount="0"/>
   <Associates Enabled="1">
    <FileExt>KGM</FileExt>
    <FileExt>MP1</FileExt>
    <FileExt>MP2</FileExt>
    <FileExt>MP3</FileExt>
    <FileExt>WMA</FileExt>
    <FileExt>WAV</FileExt>
    <FileExt>OGG</FileExt>
    <FileExt>APE</FileExt>
    <FileExt>M3U</FileExt>
    <FileExt>FLAC</FileExt>
    <FileExt>CDA</FileExt>
    <FileExt>KRC</FileExt>
  </Associates>
  <AudioDevice DeviceType="0" DeviceIndex="0"/>
  <General TaskBarScrollText="1" MagneticSize="10" GlobalHotKeyActionMsg="1" WebBillClickMsg="1" FadeInShowForms="1" M
  <PlayBack AutoPlay="0" AutoStopWhenError="1" PlayPriority="0" ContinueLastPlayProgress="0" LastPlayListID="-1" LastP
  <PlayList DisableDelFile="0" ItemInfoHint="1" EnablePlaylistDrag="1"/>
  <Network StopP2P="0" NetType="0" ProxyType="0" ProxyPort="0" DownPort="26401" DownSpeed="230" UpSpeed="-1" MinBand="
  <HotKey GlobalHotKey="1" KeyMap0="閫夐」|112|0" KeyMap1="鎾斁/鏆傚仠|116|49268" KeyMap2="涓婁竴鏇瞸16421|49189" Ke
  <Skin AdjustColor="#000000"/>
  <Info data1="000000000000"/>
  <PersonalInfo OwnUserID="0" InfoVersion="0" Sex="0" Age="0"/>
</KuGoo>

D:\lxmxn\work\perl\test\new>type doit.bat
@echo off
xml ed -u "/KuGoo/Plugin/@ModulesCount" -v "1" -i "/KuGoo/Plugin" -t "attr" -n "PluginPath" -v "C:\Program Files\KuGou
move /y #.xml KuGoo.xml

D:\lxmxn\work\perl\test\new>doit.bat
移动了         1 个文件。

D:\lxmxn\work\perl\test\new>type KuGoo.xml
<?xml version="1.0" encoding="UTF-8"?>
<KuGoo version="5.0">
  <Misc DefaultDownPath="F:\KuGou\"/>
  <Player Mute="0" Volume="100" PlayListFormVisible="1" EQFormVisible="0" LRCFormVisible="1" WebFormVisible="1" MiniMo
  <Equalizer Enable="0" PreampValue="0" BalanceValue="50" EQSound3DValue="0" PresetIndex="0" BandsGain="0,0,0,0,0,0,0,
  <Lyric LRCSavePath="C:\Program Files\KuGou\KuGou2008\Lyric\" LRCStayOnTop="1" AutoShowLRC="1" AutoSaveLRCModify="1"
  <Plugin ModulesCount="1" PluginPath="C:\Program Files\KuGou\KuGou2008\ktv98\Plugins\" Module0="dsp_ktv1.dll|0"/>
  <Associates Enabled="1">
    <FileExt>KGM</FileExt>
    <FileExt>MP1</FileExt>
    <FileExt>MP2</FileExt>
    <FileExt>MP3</FileExt>
    <FileExt>WMA</FileExt>
    <FileExt>WAV</FileExt>
    <FileExt>OGG</FileExt>
    <FileExt>APE</FileExt>
    <FileExt>M3U</FileExt>
    <FileExt>FLAC</FileExt>
    <FileExt>CDA</FileExt>
    <FileExt>KRC</FileExt>
  </Associates>
  <AudioDevice DeviceType="0" DeviceIndex="0"/>
  <General TaskBarScrollText="1" MagneticSize="10" GlobalHotKeyActionMsg="1" WebBillClickMsg="1" FadeInShowForms="1" M
  <PlayBack AutoPlay="0" AutoStopWhenError="1" PlayPriority="0" ContinueLastPlayProgress="0" LastPlayListID="-1" LastP
  <PlayList DisableDelFile="0" ItemInfoHint="1" EnablePlaylistDrag="1"/>
  <Network StopP2P="0" NetType="0" ProxyType="0" ProxyPort="0" DownPort="26401" DownSpeed="230" UpSpeed="-1" MinBand="
  <HotKey GlobalHotKey="1" KeyMap0="閫夐」|112|0" KeyMap1="鎾斁/鏆傚仠|116|49268" KeyMap2="涓婁竴鏇瞸16421|49189" Ke
  <Skin AdjustColor="#000000"/>
  <Info data1="000000000000"/>
  <PersonalInfo OwnUserID="0" InfoVersion="0" Sex="0" Age="0"/>
</KuGoo>

D:\lxmxn\work\perl\test\new>


2008-12-5 04:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ktv98
初级用户





积分 112
发帖 81
注册 2008-4-11
状态 离线
『第 18 楼』:  

不好意思.让版主生气了.然道你以为我没有动脑吗?我也一直在寻找解决的办法.为解决这个问题我在论坛上一呆一天就是10几个小时.但问题好象并不是你所说的:"关于XML的问题还是用XML的工具比较合适"或许我对XML文件还不是很了解.但你好象并没有注意到出现乱码的问题.

但我还是觉的14楼的zh159说的对:"xml文件是UTF-8编码的,所以不能用BAT来处理 " 问题的关健是如向把UTF-8编码转换成ANSI编码.然后再按照9楼tireless写的代码处理就可以.
现在我其本上找到了解决方案.早上由于还要上班了.晚上回家再把代码发上来.

非常感谢版主关心.(另附我的 KuGoo.xml 文件) 烦请测试

[ Last edited by ktv98 on 2008-12-5 at 14:53 ]

附件 1: KuGoo.rar (2008-12-5 14:53, 1.67 K,下载次数: 3)


CN-DOS批处理室非官方QQ群①:61377162 ②:70174619 ③:75070617
请勿尝试同时加多个群
2008-12-5 09:37
查看资料  发送邮件  发短消息 网志  OICQ (408130581)  编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 19 楼』:  Re 18楼

UTF-8转ANSI的方法,本论坛有。
我在制作电子书的时候也遇到了类似问题,但我没有UTF-8转ANSI,我用的sed,可以直接处理UTF-8嘿嘿。



2008-12-5 09:43
查看资料  发短消息 网志   编辑帖子  回复  引用回复
mkd
初级用户





积分 109
发帖 30
注册 2007-9-5
状态 离线
『第 20 楼』:  


findstr /v "<Plugin.*/> </KuGoo>" KuGoo.xml>KuGoo-new.xml
>>KuGoo-new.xml echo ^<Plugin PluginPath="C:\Program Files\KuGou\KuGou2008\ktv98\Plugins\" ModulesCount="1" Module0="dsp_ktv1.dll|0"/^>
>>KuGoo-new.xml echo ^</KuGoo^>


2008-12-5 12:33
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ktv98
初级用户





积分 112
发帖 81
注册 2008-4-11
状态 离线
『第 21 楼』:  



  Quote:
Originally posted by mkd at 2008-12-5 12:33 PM:
[code]
findstr /v "<Plugin.*/> </KuGoo>" KuGoo.xml>KuGoo-new.xml
>>KuGoo-new.xml echo ^<Plugin PluginPath="C:\Program Files\KuGou\KuGou2008\ktv98\Plugins\&q ...

试了不行



CN-DOS批处理室非官方QQ群①:61377162 ②:70174619 ③:75070617
请勿尝试同时加多个群
2008-12-5 14:44
查看资料  发送邮件  发短消息 网志  OICQ (408130581)  编辑帖子  回复  引用回复
ktv98
初级用户





积分 112
发帖 81
注册 2008-4-11
状态 离线
『第 22 楼』:  

经过几天摸索其本解决[酷狗音乐2008]安装目录下KuGoo.xml文件的修改问题.
要说明一下刚开始我没注意到[酷狗音乐2008]安装目录下的KuGoo.xml文件是UTF-8编码的.
一开始用9楼tireless兄写的代码进行测试虽然要更换的字符串是可以更换成功了.
但是有的字符却变成乱码.特别是中文部分....出现这个情况.
我以为处理xml文件格式可能需要用xml文件的编辑工具才能完成
但是我对xml文件的编辑工具又不了解(如lxmxn版主所说的关于XML的问题还是用XML的工具比较合适.需要了解一点Xpath方面的知识。)
后来看到14楼zh159兄说:xml文件是UTF-8编码的,所以不能用BAT来处理
我就尝试把KuGoo.xml文件由UTF-8编码转成ANSI编码然后再看看行不行
搜索论坛找到fastslz兄写的文章.用他写的vbs代码将UTF-8编码转成ANSI编码.然后再按9楼tireless写的代码进行测试.
果然成功了.没有出现乱码.(因为乱码的KuGoo.xml文件.酷狗音乐2008的kugoo.exe是无法识别的.)
下面是我综合修改后的代码.希望对有需要的人有用
(非常感谢tireless  zh159  fastslz  lxmxn版主)

兰色部分是fastslz兄写的VBS代码稍作一点修改
(作用是将KuGoo.xml文件由UTF-8编码转成ANSI编码)

红色部分是9楼tireless兄写的代码
(作用是将<Plugin ModulesCount="0"/>改成
<Plugin PluginPath="C:\Program Files\KuGou\KuGou2008\ktv98\Plugins\" ModulesCount="1" Module0="dsp_ktv1.dll|0"/>



@echo off
taskkill /f /im KuGoo.exe


Echo Set objArgs = WScript.Arguments > UTF82ANSI.vbs
Echo         For I = 0 To objArgs.Count - 1 >> UTF82ANSI.vbs
Echo             FileUrl = objArgs(I) >> UTF82ANSI.vbs
Echo Call WriteToFile(FileUrl, ReadFile(FileUrl, "UTF-8"), "GB2312") >> UTF82ANSI.vbs
Echo         Next >> UTF82ANSI.vbs
Echo Function ReadFile(FileUrl, CharSet) >> UTF82ANSI.vbs
Echo     Dim Str >> UTF82ANSI.vbs
Echo     Set stm = CreateObject("Adodb.Stream") >> UTF82ANSI.vbs
Echo     stm.Type = 2 >> UTF82ANSI.vbs
Echo     stm.mode = 3 >> UTF82ANSI.vbs
Echo     stm.charset = CharSet >> UTF82ANSI.vbs
Echo     stm.Open >> UTF82ANSI.vbs
Echo     stm.loadfromfile FileUrl >> UTF82ANSI.vbs
Echo     Str = stm.readtext >> UTF82ANSI.vbs
Echo     stm.Close >> UTF82ANSI.vbs
Echo     Set stm = Nothing >> UTF82ANSI.vbs
Echo     ReadFile = Str >> UTF82ANSI.vbs
Echo End Function >> UTF82ANSI.vbs

Echo Function WriteToFile (FileUrl, Str, CharSet) >> UTF82ANSI.vbs
Echo     Set stm = CreateObject("Adodb.Stream") >> UTF82ANSI.vbs
Echo     stm.Type = 2 >> UTF82ANSI.vbs
Echo     stm.mode = 3 >> UTF82ANSI.vbs
Echo     stm.charset = CharSet >> UTF82ANSI.vbs
Echo     stm.Open >> UTF82ANSI.vbs
Echo     stm.WriteText Str >> UTF82ANSI.vbs
Echo     stm.SaveToFile FileUrl, 2 >> UTF82ANSI.vbs
Echo     stm.flush >> UTF82ANSI.vbs
Echo     stm.Close >> UTF82ANSI.vbs
Echo     Set stm = Nothing >> UTF82ANSI.vbs
Echo End Function >> UTF82ANSI.vbs

for /f "delims=" %%a in ('dir /s /b /a-d "C:\Program Files"\KuGou\KuGou2008\KuGoo.xml') do UTF82ANSI.vbs "%%a"


set xmlpath="C:\Program Files\KuGou\KuGou2008\KuGoo.xml"
for /f "tokens=1,*" %%a in ('type %xmlpath%') do (
  if "%%a" neq "<Plugin" (>>%temp%\#.xml echo.%%a%%b) else (
    >>%temp%\#.xml echo.^<Plugin PluginPath="C:\Program Files\KuGou\KuGou2008\ktv98\Plugins\" ModulesCount="1" Module0="dsp_ktv1.dll|0"/^>
  )
)
move /y %temp%\#.xml %xmlpath%


del UTF82ANSI.vbs

exit /b


   此帖被 +2 点积分    点击查看详情   
评分人:【 HAT 分数: +2  时间:2008-12-8 13:58




CN-DOS批处理室非官方QQ群①:61377162 ②:70174619 ③:75070617
请勿尝试同时加多个群
2008-12-8 13:01
查看资料  发送邮件  发短消息 网志  OICQ (408130581)  编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 23 楼』:  Re 22楼

贴代码的时候能否加上code标签?

Q: 为方便他人复制,如何给代码加code标签?
A: http://www.cn-dos.net/forum/viewthread.php?tid=43735#pid304733
参考:http://www.cn-dos.net/forum/faq.php?page=misc#1



2008-12-8 13:59
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ktv98
初级用户





积分 112
发帖 81
注册 2008-4-11
状态 离线
『第 24 楼』:  



  Quote:
Originally posted by HAT at 2008-12-8 01:59 PM:
贴代码的时候能否加上code标签?

Q: 为方便他人复制,如何给代码加code标签?
A: http://www.cn-dos.net/forum/viewthread.php?tid=43735#pid304733
参考:[ur ...

一直想知道的方法.谢谢HAT版主



CN-DOS批处理室非官方QQ群①:61377162 ②:70174619 ③:75070617
请勿尝试同时加多个群
2008-12-8 14:48
查看资料  发送邮件  发短消息 网志  OICQ (408130581)  编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 25 楼』:  

重定向后编码确实不是utf-8 了,但是命令行下也有转换文件编码的工具啊,转一下不就好了

2009-5-1 01:46
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
ccccpp
新手上路





积分 17
发帖 17
注册 2008-9-14
状态 离线
『第 26 楼』:  

正想改一个XML的,学习了,谢谢!

2009-5-11 11:53
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: