|
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 楼』:
Quote: | 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 楼』:
Quote: | Originally posted by zhoushijay at 2007-5-22 10:23 AM:
不懂XML,你能不能说的通俗一点 |
|
它其实就是一种文档文件。可用记事本的形式打开的。。很多软件安装文件夹里面都有这类文件的啊。。
|
|
2007-5-22 19:33 |
|
|
vkill
金牌会员
积分 4103
发帖 1744
注册 2006-1-20 来自 甘肃.临泽
状态 离线
|
|
2007-5-22 20:56 |
|
|
nbic
初级用户
积分 135
发帖 61
注册 2007-4-14
状态 离线
|
『第
7 楼』:
Quote: | 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 楼』:
Quote: | 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
状态 离线
|
|
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 |
|