中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 21:33
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » 如何截取文件名字和路经并相应拷贝?
可打印版本  1,025 / 8
第1楼 feiying001 发表于 2009-12-28 21:07
初级用户 发帖 18 积分 25
如何截取文件名字和路经并相应拷贝?
在这个文件中,如何截取Filename="pas4.stt"中的pas4.stt并拷贝到LocalPath="%BaseFolder%\Stat"中?注意是截取所有Filename=*并拷贝到相应的文件夹:LocalPath="%BaseFolder%\Stat",文件名字和路经并不完全相同,要根据内容进行提取


<UpdateFiles
UpdateDate="27122009 0036"
ObjectType="2=PAS4;3=BASE">
<FileDescription
ComponentID="PAS4"
UpdateType="base"
LocalPath="%BaseFolder%\Stat"
Filename="pas4.stt"
Body="OTk4MDY7MjAwOTEyMjcwMDM2DQo=" />
<FileDescription
ComponentID="PAS4"
UpdateType="base"
LocalPath="%BaseFolder%"
Filename="base.keb" />
<FileDescription
ComponentID="PAS4"
UpdateType="base"
LocalPath="%BaseFolder%"
Filename="content_interpreter.kep" />
<FileDescription
ComponentID="PAS4"
UpdateType="base"
LocalPath="%BaseFolder%"
Filename="data.check.keb" />
<FileDescription
ComponentID="PAS4"
UpdateType="base"
LocalPath="%BaseFolder%"
Filename="data.set.idn.keb" />
<FileDescription
ComponentID="PAS4"
UpdateType="base"
LocalPath="%BaseFolder%"
Filename="data.set.keb" />
<FileDescription
ComponentID="PAS4"
UpdateType="base"
LocalPath="%BaseFolder%"
Filename="database.kep" />
<FileDescription
ComponentID="PAS4"
UpdateType="base"
LocalPath="%BaseFolder%"
Filename="dnsblacklists.keb" />
<FileDescription
ComponentID="PAS4"
UpdateType="base"
LocalPath="%BaseFolder%"
Filename="filtration.kep" />
<FileDescription
ComponentID="PAS4"
UpdateType="base"
LocalPath="%BaseFolder%"
Filename="gsg.kep" />
<FileDescription
ComponentID="PAS4"
UpdateType="base"
LocalPath="%BaseFolder%"
Filename="ke.ver" />
<FileDescription
ComponentID="PAS4"
UpdateType="base"
LocalPath="%BaseFolder%"
Filename="kis_ubllist_win.set.keb" />
<FileDescription
ComponentID="PAS4"
UpdateType="base"
LocalPath="%BaseFolder%"
Filename="mcflt0912.keb" />
<FileDescription
ComponentID="PAS4"
UpdateType="base"
LocalPath="%BaseFolder%"
Filename="profiles.keb" />
<FileDescription
ComponentID="PAS4"
UpdateType="base"
LocalPath="%BaseFolder%"
Filename="profiles.kep" />
<FileDescription
ComponentID="PAS4"
UpdateType="base"
LocalPath="%BaseFolder%"
Filename="regexps.keb" />
<FileDescription
ComponentID="PAS4"
UpdateType="base"
LocalPath="%BaseFolder%"
Filename="src.keb" />
<FileDescription
ComponentID="PAS4"
UpdateType="base"
LocalPath="%BaseFolder%"
Filename="upd_terms-full.keb" />
<Registry
ComponentID="CORE"
UpdateType="KLKEY"
LocalPath="%DSKM%"
Body="S0xyZwH6/39LTHN3AACtrQEAAAD8AwAAAwAAFgEBAAAJAYtxHipAAFRmJWNA5aPFbk1b/MyImbWBWLPZucpT1uiVdxqx0CHXFfg5tA4e1UKeb3AOtCV5PGcCc/iuoHuC+TNRi25sKFsBAB4JoQAAAAIAAigEAFBBUzQDAAIoBABCQVNFAQAACcY1zOINCjs6MTBLTXZKcUYzWFk3andnYTVEYWhrSnJYNDZUTTVFamw5OUdnVHFaa1g4Mld5emJBb1VlMnRIWEp6Q2djaGZqQlJyNTNOQ05IY1hDSzhsa2lmQWQ4VUNDUSUl"
Filename="pas4-0607g.pbv" />
<Registry
ComponentID="CORE"
UpdateType="REGISTRY"
LocalPath="%DSKM%"
Body="S0xyZwGhAABLTHN3AACtrQEAAAD8AwAAAQAAAAEAABRqEgABACAAoURUzG47ruFdRojVZ0UEM156ieIKUCGrpFoORxMLsXwgAHVbouakIWlTeUDihc96netgpH8sgGseT2RCL8ZM1/IiIADQxntIXmF/kkhvFoxayQw9Q0WHMbnZmWF9n7rb8GTKCyAAbQjqDP1HOtjaCo5LXQ+PUtcg6PlexG1YnTtenUDjRAkgAMVR74Nta2CPe5i1qc/JdtAT5tIO6+Xhz++JppcMx1I/IADcaCXTzdPFg23keiUkNVqoNzpvCSq7PElfvEXDiOaF1yAAT3dGWw9u1rF7LvU8dk2NK6wBt5u0603Gck1glFh34ysgAFs9Ta0OLNH8bbMe/vGuxGFerMllDr+j0DfhA4xGxGqAIADk2QHGjcSoLgQlA0Yh+BwoS03IRXSqEueU2XdSwYkM4iAANWfGeGX5Cr6M8Px32c+uMefkywK3wCCNH5CHEjMLdbsgALJkdtJg2wX/vtzQ+WmjWV8JmG1p6QNWB3DCP1PDSR9oIADTbpvs57tubQAcJ1Qq0gd09A8jyqzXVh5lRQluJqOZ3yAASkqqZbT6yvIWkyyvsEDZv6DPgbJHIB7M1rIWPmJrMHggAP3t0ckGPdZ4iaUi5+RoDwr5vx3/etsCqGZeEP/8IGPVIADGbaIKwULK6Vx5T4LcqWL4bby/fbYIGTwJgiHJKx7hxSAADPf2dloqgjbsHCSH5lh1tdsJSo3U4F75ujC9SSwjAUsgAKbG6CmFXGlZCARvzu2BHPBru08MzVQRdeADsu6oOO+gIABnFaWO2etk3CeJZ45jKmmEKOO+BtLUPS41SJH2FGahHQEAHgmhAAAAAQAACRgxW4INCjs6MTA0VGtWNE52bjdHZWVEaEsydnBrMnpBREk1TkthQ0Rua3NPdyswdmxybVQwUXNYd2RJVkFTd2d1Z3E2MWlveUN0M2cxVHdJSCsrTWtCMkxpWVduMUpqbiUl"
Filename="pas4-0607g.krg" />
</UpdateFiles>
;:10qKuOFLnyrCugmKr+9AQq7sequzrHR957HpnxL9vJ8qFB5TdxRaChybMp6ebvmqg2bUSmWoWjtz02360qZ/Q+ZZ%%

[ Last edited by feiying001 on 2009-12-28 at 21:09 ]
第2楼 feiying001 发表于 2009-12-29 12:52
初级用户 发帖 18 积分 25
能实现吗?
第3楼 qinchun36 发表于 2009-12-30 12:20
高级用户 发帖 400 积分 609
第4楼 feiying001 发表于 2009-12-30 13:48
初级用户 发帖 18 积分 25
Originally posted by qinchun36 at 2009-12-30 12:20 PM:
第5楼 slore 发表于 2009-12-30 16:22
铂金会员 发帖 2,478 积分 5,212
mht2html
第6楼 qinchun36 发表于 2009-12-30 17:09
高级用户 发帖 400 积分 609
你说的去掉重复是什么意思?
比如你的 "klif.sys" 是随便复制一个,还是要根据 OS="Win-XP" 判断?
第7楼 feiying001 发表于 2009-12-30 18:18
初级用户 发帖 18 积分 25
是复制一个到另外目录中,只要 一个即可,因为这个文件其实是这样的:Filename=后面是文件名字
ServerFolder=后面是程序自己要备份的路经
LocalPath=是程序从何处进行拷贝进行备份
但有一个问题是程序自己要备份时是从它自己的服务器下载相应文件的,如klif.sys,它会下载所有支持的系统相应文件并放入不同的文件夹内,而我自己备份时只备份自己系统上的klif.sys文件,因为我备份时可能本机并不联网的,所以只取一个即可。
从下面这段字符就可以知道我的意思了
<FileDescription
Filename="klif.sys"
ComponentID="KAV9Exec"
UpdateType="executable"
App="KAV 9.0.0.459; KIS 9.0.0.459"
ServerFolder="9.0.0.459\sys\i386\5.1"
FixName="a"
OS="Win-XP"
SysArch="i386"
LocalPath="%WINDIR%\System32\drivers"
ApplyPeriod="87600"
ApplyReaction="restart_os" />
<FileDescription
Filename="klif.sys"
ComponentID="KAV9Exec"
UpdateType="executable"
App="KAV 9.0.0.459; KIS 9.0.0.459"
ServerFolder="9.0.0.459\sys\x64\5.2"
FixName="a"
OS="Win-XPx64"
SysArch="x64"
LocalPath="%WINDIR%\System32\drivers"
ApplyPeriod="87600"
ApplyReaction="restart_os" />
我的意思是取Filename="klif.sys"中的klif.sys备份到LocalPath="%WINDIR%\System32\drivers"下面。也可以理解为恢复,因为我目前仅考虑实现的技术,做备份和恢复到时我做相应调整即可。从上面可以看到,要备份(恢复)的路经是相同的,而且此xml文件里面其实有很多段这样的情况,我拷贝例子时仅拷贝了一小部分内容。

[ Last edited by feiying001 on 2009-12-30 at 18:19 ]
第8楼 qinchun36 发表于 2009-12-30 20:32
高级用户 发帖 400 积分 609
还是没明白你对于重复的怎么搞。。。

我没办法用BAT搞定,给你写了个智能的脚本,你什么都不用准备,把下面的代码保存为 解析.hta ,双击运行,选择你要处理的文件,然后点“生成批处理”就能得到批处理代码了,自己保存为BAT吧,看看是不是你需要的效果


第9楼 feiying001 发表于 2009-12-30 21:17
初级用户 发帖 18 积分 25
这个程序写的太好了!!!我正想达到这个效果!
不过根据你的代码经过修改也基本能达到我的需求。我所缺的就是SET参数不会循环调用。
学习了!!!
另外问一下:怎么给你的回答做加分呀?

另外有个帖子是别人引用的我第二次修改的批处理代码(卡巴斯基的备份工具)其中有的代码不完善,但由于工作太忙原因,我QQ:350345348很长时间没上,已经被收回了。等 我写好这个会发给大家交流的。

[ Last edited by feiying001 on 2009-12-30 at 21:32 ]
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023