中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
<<   [1] [2] [3]  >>   >
作者:
标题: 问一个有关文本内容的难题 上一主题 | 下一主题
nbic
初级用户




积分 135
发帖 61
注册 2007-4-14
状态 离线
『楼 主』:  问一个有关文本内容的难题

下面是一个xml文档的内容的部分,难题是,如何根据其内容,然后从电脑中复制所有的Filename文件,并保存到每个文件所对应的ServerFolder路径中? <UpdateFiles UpdateDate="21052007 0215"> <FileDescription ComponentID="AVS" UpdateType="desc" ServerFolder="../../bases/av/avc/i386" Filename="av-i386-0607g.xml" FileDate="21052007 0057" /> <FileDescription ComponentID="AS" UpdateType="desc" ServerFolder="../../bases/as/kis" Filename="as-0607g.xml" FileDate="21052007 0202" /> <FileDescription ComponentID="AHI386" UpdateType="desc" ServerFolder="../../bases/ids/i386" Filename="ah-i386-0607g.xml" FileDate="18052007 1408" /> <FileDescription ComponentID="AHX64" UpdateType="desc" ServerFolder="../../bases/ids/x64" Filename="ah-x64-0607g.xml" FileDate="18052007 1418" /> <FileDescription ComponentID="AH" UpdateType="desc" ServerFolder="../../bases/ids/i386-x64" Filename="ah-i386-x64-0607g.xml" FileDate="18052007 1427" /> 很难的一个题目。。希望高手能帮忙解决。。先谢过了! 说明一下。保存路径可以只是后面有显示的部分。如bases/av/avc/i386 [ Last edited by nbic on 2007-5-21 at 09:00 PM ]


2007-5-21 20:58
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
bjsh
银牌会员





积分 2000
发帖 621
注册 2007-1-1
状态 离线
『第 2 楼』:  

Filename="av-i386-0607g.xml" 这些文件在当前文件夹吗??


2007-5-21 22:19
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
zhoushijay
高级用户

Autowalk


积分 845
发帖 375
注册 2007-3-3
状态 离线
『第 3 楼』:  

不懂XML,你能不能说的通俗一点




你好,脚本专家! <a target=blank href=tencent://message/?uin=29654761&Site=www.111.com&Menu=yes><img border="0" SRC=http://wpa.qq.com/pa?p=1:29654761:5 alt="点击这里给我发消息"></a>
2007-5-22 10:23
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
nbic
初级用户




积分 135
发帖 61
注册 2007-4-14
状态 离线
『第 4 楼』:  

Originally posted by bjsh at 2007-5-21 10:19 PM: Filename="av-i386-0607g.xml" 这些文件在当前文件夹吗??
是的。。


2007-5-22 19:31
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
nbic
初级用户




积分 135
发帖 61
注册 2007-4-14
状态 离线
『第 5 楼』:  

Originally posted by zhoushijay at 2007-5-22 10:23 AM: 不懂XML,你能不能说的通俗一点
它其实就是一种文档文件。可用记事本的形式打开的。。很多软件安装文件夹里面都有这类文件的啊。。


2007-5-22 19:33
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
vkill
金牌会员





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

sed


2007-5-22 20:56
查看资料  发送邮件  访问主页  发短消息  网志   编辑帖子  回复  引用回复
nbic
初级用户




积分 135
发帖 61
注册 2007-4-14
状态 离线
『第 7 楼』:  

Originally posted by vkill at 2007-5-22 08:56 PM: sed
能讲的清楚一些吗?对这个命令比较陌生。。谢了。。!


2007-5-22 21:28
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
bjsh
银牌会员





积分 2000
发帖 621
注册 2007-1-1
状态 离线
『第 8 楼』:  

我写了个p的; 我把关键代码写了; 剩下的根据情况自行修改 :start处; sed应该比这个简单吧;
@echo off
call :reset
for /f "tokens=2 delims==" %%a in ('findstr /i "serverfolder filename" a.xml') do (
	if not defined serverfolder (set "serverfolder=%%~a") else (
       		if not defined filename set "filename=%%~a" & call :start
	)
)
goto :eof 
:start
set "serverfolder=%serverfolder:~6%"
echo %filename%    保存在    %serverfolder%
:reset
set "serverfolder="
set "filename="
[ Last edited by bjsh on 2007-5-23 at 08:11 PM ]


2007-5-22 23:31
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
nbic
初级用户




积分 135
发帖 61
注册 2007-4-14
状态 离线
『第 9 楼』:  

Originally posted by bjsh at 2007-5-22 11:31 PM: 我写了个p的; 我把关键代码写了; 剩下的根据情况自行修改 :start处; sed应该比这个简单吧; [code] @echo off call :reset for /f "tokens=2 delims==" %%a i ...
刚才试了试。界面一闪就没了。。什么文件也没复制到。。 再问一下,有些文件开头的行数UpdateFiles 与FileDescription之间的数有不同。set的参数该如何改呢?


2007-5-23 07:34
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
bjsh
银牌会员





积分 2000
发帖 621
注册 2007-1-1
状态 离线
『第 10 楼』:  

to :nbic 上面的代码我只写了关键部分; 复制部分我没写; 在命令行下运行;你会看到结果;不要直接双击;或者加pause; 其中的复制部分我没写我写的是 echo %filename% 保存在 %serverfolder% 这里是留给你自己修改的; 比如如果已经存在bases/av/avc/i386 直接copy %filename% c:\(其他盘自行修改)%serverfolder% 如果目录不存在;无非是多个md %serverfolder%


2007-5-23 09:30
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
nbic
初级用户




积分 135
发帖 61
注册 2007-4-14
状态 离线
『第 11 楼』:  

好的。。试试看。。


2007-5-23 10:12
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
nbic
初级用户




积分 135
发帖 61
注册 2007-4-14
状态 离线
『第 12 楼』:  

一下是我稍微修改后的程序。用bat还是cmd运行。都没达到效果。双击后出现一界面。提示按任意键,按任意键后,自动退出了。。 @echo off call :reset for /f "tokens=2 delims==" %%a in ('findstr /i "serverfolder filename" a.xml') do ( if not defined serverfolder (set "serverfolder=%%~a") else ( if not defined filename set "filename=%%~a" & call :start ) ) goto :eof md D:\AVP\%serverfolder% :start set "serverfolder=%serverfolder:~6% copy %filename% D:\AVP\%serverfolder% :reset set "serverfolder=" set "filename=" pause exit


2007-5-23 10:28
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
zhoushijay
高级用户

Autowalk


积分 845
发帖 375
注册 2007-3-3
状态 离线
『第 13 楼』:  

有几点注明一下: 1。因为COPYFILE不能在HTTP上使用,所以我把路径改成了bases\ids\i386\ 2。此程序必须在bases的上一及目录中运行 3。所有文件必须同时存在,缺一不可,并且在同一目录中 4。11.xml为上面的文件
set fso=createobject("scripting.filesystemobject")
set opxml=fso.opentextfile("11.xml",1)

do while opxml.atendofline<>true
	rdxml=opxml.readline

	if instr(17,rdxml,"Filename")<>0 then
		unt=mid(rdxml,27)
		filenm=mid(unt,1,len(unt)-1)
	end if

	if instr(17,rdxml,"ServerFolder")<>0 then
		path=mid(rdxml,37)
		pathnm=mid(path,1,len(path)-1)
		pathnm=pathnm&"\"
		copath=replace(pathnm,"/","\")
	end if

	if filenm<>"" and copath<>"" then
		fso.copyfile filenm,copath
		comp="已复制文件 "&filenm&" 到 "&copath
		com=com&chr(10)&comp
		filenm=""
		copath=""
	end if

loop
msgbox(com)
[ Last edited by zhoushijay on 2007-5-23 at 11:05 AM ]




你好,脚本专家! <a target=blank href=tencent://message/?uin=29654761&Site=www.111.com&Menu=yes><img border="0" SRC=http://wpa.qq.com/pa?p=1:29654761:5 alt="点击这里给我发消息"></a>
2007-5-23 10:52
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
nbic
初级用户




积分 135
发帖 61
注册 2007-4-14
状态 离线
『第 14 楼』:  

楼上朋友的第二条比较苛刻。。我要编辑的xml 文件有26个那么多,而且所存放的文件夹又大都不同。。所以,为难哦。。


2007-5-23 11:10
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
zhoushijay
高级用户

Autowalk


积分 845
发帖 375
注册 2007-3-3
状态 离线
『第 15 楼』:  

Filename="av-i386-0607g.xml" 如果不在同一目录中,那么filename是不是因该写上路径,否则XML里也会无效的吧




你好,脚本专家! <a target=blank href=tencent://message/?uin=29654761&Site=www.111.com&Menu=yes><img border="0" SRC=http://wpa.qq.com/pa?p=1:29654761:5 alt="点击这里给我发消息"></a>
2007-5-23 11:31
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
<<   [1] [2] [3]  >>   >
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: