标题: 问一个有关文本内容的难题
[打印本页]
作者: nbic
时间: 2007-5-21 20:58
标题: 问一个有关文本内容的难题
下面是一个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 ]
作者: bjsh
时间: 2007-5-21 22:19
Filename="av-i386-0607g.xml"
这些文件在当前文件夹吗??
作者: zhoushijay
时间: 2007-5-22 10:23
不懂XML,你能不能说的通俗一点
作者: nbic
时间: 2007-5-22 19:31
Quote: |
Originally posted by bjsh at 2007-5-21 10:19 PM:
Filename="av-i386-0607g.xml"
这些文件在当前文件夹吗?? |
|
是的。。
作者: nbic
时间: 2007-5-22 19:33
Quote: |
Originally posted by zhoushijay at 2007-5-22 10:23 AM:
不懂XML,你能不能说的通俗一点 |
|
它其实就是一种文档文件。可用记事本的形式打开的。。很多软件安装文件夹里面都有这类文件的啊。。
作者: vkill
时间: 2007-5-22 20:56
sed
作者: nbic
时间: 2007-5-22 21:28
Quote: |
Originally posted by vkill at 2007-5-22 08:56 PM:
sed |
|
能讲的清楚一些吗?对这个命令比较陌生。。谢了。。!
作者: bjsh
时间: 2007-5-22 23:31
我写了个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 ]
作者: nbic
时间: 2007-5-23 07:34
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的参数该如何改呢?
作者: bjsh
时间: 2007-5-23 09:30
to :nbic
上面的代码我只写了关键部分;
复制部分我没写;
在命令行下运行;你会看到结果;不要直接双击;或者加pause;
其中的复制部分我没写我写的是
echo %filename% 保存在 %serverfolder%
这里是留给你自己修改的;
比如如果已经存在bases/av/avc/i386
直接copy %filename% c:\(其他盘自行修改)%serverfolder%
如果目录不存在;无非是多个md %serverfolder%
作者: nbic
时间: 2007-5-23 10:12
好的。。试试看。。
作者: nbic
时间: 2007-5-23 10:28
一下是我稍微修改后的程序。用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
作者: zhoushijay
时间: 2007-5-23 10:52
有几点注明一下:
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 ]
作者: nbic
时间: 2007-5-23 11:10
楼上朋友的第二条比较苛刻。。我要编辑的xml 文件有26个那么多,而且所存放的文件夹又大都不同。。所以,为难哦。。
作者: zhoushijay
时间: 2007-5-23 11:31
Filename="av-i386-0607g.xml"
如果不在同一目录中,那么filename是不是因该写上路径,否则XML里也会无效的吧
作者: bjsh
时间: 2007-5-23 11:40
Quote: |
@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 |
|
其中的 md D:\AVP\%serverfolder% 不是写在那里的;
否则根本就执行不到这一句;
写在copy前面;
:start标签的里面;
还有 我把你在一楼贴的代码保存为 a.xml;
如果不是的请自行修改代码红色部分
导致问题的根本原因是因为你加上的pause&exit
好好读读源码
第一行是call :reset
执行reset时你加了pause&pause不直接退出干吗..
根据你的意思修改了下
@echo off
md D:\AVP\%serverfolder%
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
)
)
pause & exit
:start
set "serverfolder=%serverfolder:~6%
copy %filename% D:\AVP\%serverfolder%
:reset
set "serverfolder="
set "filename="
[
Last edited by bjsh on 2007-5-23 at 04:09 PM ]
作者: lxmxn
时间: 2007-5-23 13:18
标题: use sed+bat
@echo off
sed -n "/Filename=/p;/ServerFolder/p" urfile.xml|sed "N;s,^[ \t]*ServerFolder=\(.*\)\n[ \t]*Filename=\(.*\),copy /y \2 \1,g"|sed "s,/,\\,2g"|more>news.bat
call news.bat
作者: nbic
时间: 2007-5-23 13:39
Quote: |
Originally posted by bjsh at 2007-5-23 11:40 AM:
其中的 md D:\AVP\%serverfolder% 不是写在那里的;
否则根本就执行不到这一句;
写在copy前面;
:start标签的里面;
还有 我把你在一楼贴的代码保存为 a. ... |
|
你的这个程序,运行后,提示:系统找不到指定文件。如果这个程序的工具和文件不在一起的话,它会提示:打不开xml文件
作者: nbic
时间: 2007-5-23 13:46
Quote: |
Originally posted by lxmxn at 2007-5-23 01:18 PM:
[code]@echo off
sed -n "/Filename=/p;/ServerFolder/p" urfile.xml|sed "N;s,^[ \t]*ServerFolder=\(.*\)\n[ \t]*Filename=\(.*\),copy /y \2 \1,g"|sed "s,/,\\,2g"|more>n ... |
|
这个实在高深。。没看懂。。
试运行后,界面一闪而过。。
可能我的主题还不是讲的很清楚。在这说一下更详细的。。
一、从电脑中复制文件u0607g.xml。里面包含所有*0607g.xml文件的信息。如下:
<UpdateFiles
UpdateDate="21052007 0215">
<FileDescription
Comp
UpdateType="desc"
ServerFolder="../../bases/av/avc/i386"
Filename="av-i386-0607g.xml"
FileDate="21052007 0057" />
<FileDescription
Comp
UpdateType="desc"
ServerFolder="../../bases/as/kis"
Filename="as-0607g.xml"
FileDate="21052007 0202" />
<FileDescription
Comp
UpdateType="desc"
ServerFolder="../../bases/ids/i386"
Filename="ah-i386-0607g.xml"
FileDate="18052007 1408" />
<FileDescription
Comp
UpdateType="desc"
ServerFolder="../../bases/ids/x64"
Filename="ah-x64-0607g.xml"
FileDate="18052007 1418" />
<FileDescription
Comp
UpdateType="desc"
ServerFolder="../../bases/ids/i386-x64"
Filename="ah-i386-x64-0607g.xml"
FileDate="18052007 1427" />
<FileDescription
Comp
UpdateType="desc"
ServerFolder="../../bases/aspy"
Filename="aspy-0607g.xml"
FileDate="10052007 1553" />
<FileDescription
Comp
UpdateType="desc"
ServerFolder="../../bases/blst"
Filename="blst-0607g.xml"
FileDate="16052007 1210"
MD5="yXVPXuP1jjOFyuoWtE04UA==" />
<FileDescription
Comp
UpdateType="desc"
ServerFolder="../../bases/av/klava/webav"
Filename="wm-0607g.xml"
FileDate="09032007 0721" />
<FileDescription
Comp
UpdateType="desc"
ServerFolder="../../bases/pdm"
Filename="pdm-0607g.xml"
FileDate="18052007 1432" />
<FileDescription
Comp
UpdateType="desc"
ServerFolder="../../bases/upd"
Filename="upd-0607g.xml"
FileDate="10042007 1431" />
<FileDescription
Comp
UpdateType="desc"
ServerFolder="../../bases/info"
Filename="info-0607g.xml"
FileDate="10052007 1333" />
<FileDescription
Comp
UpdateType="desc"
ServerFolder="../../bases/pcdb"
Filename="pcdb-0607g.xml"
FileDate="11052007 1547" />
<FileDescription
Comp
UpdateType="desc"
ServerFolder="../../bases/av/klava/emu/i386"
Filename="emu-i386-0607g.xml"
FileDate="16052007 1706" />
<FileDescription
Comp
UpdateType="desc"
ServerFolder="../../bases/av/klava/wa/i386"
Filename="wa-i386-0607g.xml"
FileDate="10052007 0755" />
<FileDescription
Comp
UpdateType="desc"
ServerFolder="../../AutoPatches/kav6"
Filename="kav6-0607g.xml"
FileDate="20022007 1213" />
<FileDescription
Comp
UpdateType="desc"
ServerFolder="../../AutoPatches/kav_aol"
Filename="kav_aol-0607g.xml"
FileDate="02042007 1140" />
<FileDescription
Comp
UpdateType="desc"
ServerFolder="../../AutoPatches/kav_dt"
Filename="kav_dt-0607g.xml"
FileDate="27022007 1109" />
<FileDescription
Comp
UpdateType="desc"
ServerFolder="../../AutoPatches/kav_jp"
Filename="kav_jp-0607g.xml"
FileDate="16042007 1153" />
<FileDescription
Comp
UpdateType="desc"
ServerFolder="../../AutoPatches/kav_kpss"
Filename="kav_kpss-0607g.xml"
FileDate="26042007 0817" />
<FileDescription
Comp
UpdateType="desc"
ServerFolder="../../AutoPatches/kav_mais"
Filename="kav_mais-0607g.xml"
FileDate="12032007 1024" />
<FileDescription
Comp
UpdateType="desc"
ServerFolder="../../AutoPatches/kav_pcss"
Filename="kav_pcss-0607g.xml"
FileDate="13042007 1411" />
<FileDescription
Comp
UpdateType="desc"
ServerFolder="../../AutoPatches/kav_rss"
Filename="kav_rss-0607g.xml"
FileDate="26042007 1117" />
<FileDescription
Comp
UpdateType="desc"
ServerFolder="../../AutoPatches/kav_stg"
Filename="kav_stg-0607g.xml"
FileDate="12032007 0939" />
<FileDescription
Comp
UpdateType="desc"
ServerFolder="../../AutoPatches/kav_xss"
Filename="kav_xss-0607g.xml"
FileDate="12032007 0939" />
<FileDescription
Comp
UpdateType="desc"
ServerFolder="../../bases/rt"
Filename="rt-0607g.xml"
FileDate="07022007 1106" />
<Registry
Comp
UpdateType="KLKEY"
LocalPath="%DSKM%"
从电脑中复制上面所有的Filename文件,并保存在每个文件所对应的ServerFolder路径中。在这里,将
路径统一为这种形式:
AVP——index/6
│
├─bases——/av/avc/i386
│ │-/as/kis
│ │-/ids/i386
│ │-/ids/x64
│ │-/ids/i386-x64
│ │-/aspy
│ │-/blst
│ │-/av/klava/webav
│ │-/pdm
│ │-/upd
│ │-/info
│ │-/pcdb
│ │-/av/klava/emu/i386
│ │-/av/klava/wa/i386
│ │-/rt
│
└─AutoPatches——/kav6
│-/kav_aol
│-/kav_dt
│-/kav_jp
│-/kav_kpss
│-/kav_mais
│-/kav_pcss
│-/kav_rss
│-/kav_stg
│-/kav_xss
二、读取刚才所保存的每个xml文件,根据里面的内容(主要是文件),从电脑中复制所有文件到当前目录中。比如说:
upd-0607g.xml这个文件,它就存放在路径AVP/bases/upd子文件夹里面,读取它的内容为:
<UpdateFiles
UpdateDate="10042007 1431">
<FileDescription
Comp
UpdateType="base"
LocalPath="%DataFolder%"
Filename="updcfg.xml"
FileSize="20586" />
<Registry
Comp
UpdateType="REGISTRY"
LocalPath="%DSKM%",
然后,将updcfg.xml这个文件从电脑中也复制到当前目录下,即AVP/bases/upd里面。
[
Last edited by nbic on 2007-5-23 at 01:47 PM ]
作者: lxmxn
时间: 2007-5-23 14:23
汗一个...
问问题就把问题说清楚,不要别人给了答案又来一个不符合要求。
作者: bjsh
时间: 2007-5-23 16:14
Quote: |
Originally posted by nbic at 2007-5-23 01:39 PM:
你的这个程序,运行后,提示:系统找不到指定文件。如果这个程序的工具和文件不在一起的话,它会提示:打不开xml文件 |
|
那个程序必须和a.xml以及欲复制的文件在同一个目录下;
否则如果找不到a.xml则显示:
无法打开a.xml
如果欲复制的文件没在当前目录;自然出现"系统找不到指定文件"
作者: nbic
时间: 2007-5-23 18:25
Quote: |
Originally posted by bjsh at 2007-5-23 04:14 PM:
那个程序必须和a.xml以及欲复制的文件在同一个目录下;
否则如果找不到a.xml则显示:
无法打开a.xml
如果欲复制的文件没在当前目录;自然出现"系统找不到指定文件" |
|
用如下程序。
@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
)
)
pause & exit
:start
set "serverfolder=%serverfolder:~6%
md D:\AVP\%serverfolder%
copy %filename% D:\AVP\%serverfolder%
:reset
set "serverfolder="
set "filename="
提示语法不正确。。
此程序和a.xml文件,以及a.xml里面所涉及的文件都在同一个文件夹里面。。
作者: bjsh
时间: 2007-5-23 20:17
怪我了;
怪我当时一粗心复制代码时set "serverfolder=%serverfolder:~6%
后面少了个引号;
而且当时写的时候
只写了echo %filename% 将被复制到 %serverfolder%
而没注意到%serverfolder%里的斜杠是反的;
修正代码如下;
@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
)
)
pause&exit
:start
set "serverfolder=%serverfolder:~6%"
set "serverfolder=%serverfolder:/=\%"
md c:\AVP\%serverfolder%
copy %filename% c:\AVP\%serverfolder%
:reset
set "serverfolder="
set "filename="
测试结果如下:
至于少了——index/6这一支是因为你的xml也没有这个路径;
可以自行添加;
Quote: |
c:\AVP>tree
文件夹 PATH 列表
卷序列号码为 0007F00C 45A6:9F99
C:.
├─bases
│ ├─av
│ │ ├─avc
│ │ │ └─i386
│ │ └─klava
│ │ ├─webav
│ │ ├─emu
│ │ │ └─i386
│ │ └─wa
│ │ └─i386
│ ├─as
│ │ └─kis
│ ├─ids
│ │ ├─i386
│ │ ├─x64
│ │ └─i386-x64
│ ├─aspy
│ ├─blst
│ ├─pdm
│ ├─upd
│ ├─info
│ ├─pcdb
│ └─rt
└─AutoPatches
├─kav6
├─kav_aol
├─kav_dt
├─kav_jp
├─kav_kpss
├─kav_mais
├─kav_pcss
├─kav_rss
├─kav_stg
└─kav_xss |
|
[
Last edited by bjsh on 2007-5-23 at 08:28 PM ]
作者: nbic
时间: 2007-5-23 21:07
Quote: |
Originally posted by bjsh at 2007-5-23 08:17 PM:
怪我了;
怪我当时一粗心复制代码时set "serverfolder=%serverfolder:~6%
后面少了个引号;
而且当时写的时候
只写了echo %filename% 将被复制到 %serverfolder%
... |
|
刚才试了试。。可以啊。。呵呵
不过,工具要和a.xml以及a.xml里面的filename在同一个文件夹里面,才可以完成解读和复制功能。。能不能,将工具当独抽出来,然后对所有xml文件进行解读和复制操作呢?
还有个问题,a.xml文件之前,能不能加路径啊?如果可以的话,那么工具是不是可以当独放到文件夹外面啊?
作者: bjsh
时间: 2007-5-23 22:27
是的;只要给a.xml和filename指定路径;
这个程序放哪都可以了;
其实和他们放一起不过是因为省略了当前路径而已;
限定路径后;就无所谓放哪了.
作者: nbic
时间: 2007-5-23 22:42
刚才我发完帖自己试了试。可以。。不错。。
因为xml的文件不是都在一个文件夹里面。而且,每个xml文件里面的内容所涉及的文件也不都在同一个文件夹里面。现在我想这样来处理。。
1、先将所有*0607g.xml的文件用xcopy复制到一个文件夹里面;
2、利用上面的程序,来进行xml文件的读取和复制操作。
现在有个问题。能不能将所有xml文件都和a.xml放在一起。那么进行读取和复制操作时,全部一起完成?如果不能。那么是不是重复上面的程序,只要将a.xml改改名称,将其里面所涉及的文件的路径再改改就行?
作者: terse
时间: 2007-5-24 00:29
请教一下:set "serverfolder=%serverfolder:~6%"在这里的用处?
为什么不可以直接copy %filename% %serverfolder%
作者: bjsh
时间: 2007-5-24 06:20
起初serverfolder取得的值为这种形式:
../../bases/info
我用%serverfolder:~6%获得bases/info去掉前面的省略号;
但是现在看来确实是多余的;
直接把'/'替换为'\'即可
这是一种错误的说法
实际上 md c:\avp\bases\info
和md c:\avp\..\..\bases\info 是不同的;后者会把目录建在c:\下而不是AVP下;
实际上 c:\avp\..\bases\info也可以把目录健在c:\
\..表示上一层目录;
\..\..表示上两层目录;
比如 md c:\avp\bases\..\..\t
会把t文件夹建立在c:\目录下
而 md c:\avp\bases\..\t会把 t文件夹建立在 c:\avp\ 下
[
Last edited by bjsh on 2007-5-24 at 12:41 PM ]
作者: nbic
时间: 2007-5-24 07:30
现在碰到一个问题。由于我完成a.xml里面文件的复制后,要接着进行其它xml文件的操作时。我采用重复利用操作a.xml文件时的程序(当然,将里面的一些内容小改了下,如:文件名、路径之类)。结果运行时发现,不但其它的重复程序不能完成任务,而且最初的那个操作a.xml文件的程序也出现问题,不能完成复制。。
这个问题该如何解决啊?
如果不用重复利用操作a.xml 时的程序,那么,在操作别的xml 文件时,该怎么写程序呢?
作者: bjsh
时间: 2007-5-24 08:40
而且最初的那个操作a.xml文件的程序也出现问题
??
听不大懂;
尽可能的把你的东西;只像a.xml这样的xml按照原来的目录层次结构打包上来;
作者: nbic
时间: 2007-5-24 09:17
Quote: |
Originally posted by bjsh at 2007-5-24 08:40 AM:
而且最初的那个操作a.xml文件的程序也出现问题
??
听不大懂;
尽可能的把你的东西;只像a.xml这样的xml按照原来的目录层次结构打包上来; |
|
通过完成a.xml 上面的操作程序,会生产一个AVP文件夹,AVP里面的每个子文件夹都有一个xml文件,我想完成的是,将每个xml文件都安照处理a.xml 的方式来操作。
问一下。论坛的附件无法直接上传哦。。?要先上传到文件上传系统。还得注册一下。。正在等验证。。
作者: terse
时间: 2007-5-24 12:18
Quote: |
Originally posted by bjsh at 2007-5-24 06:20:
起初serverfolder取得的值为这种形式:
../../bases/info
我用%serverfolder:~6%获得bases/info去掉前面的省略号;
但是现在看来确实是多余的;
直接把'/'替换为'\'即可 |
|
去掉的 %serverfolder:~6%
@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
)
)
:start
set "serverfolder=%serverfolder:/=\%"
md %serverfolder%
copy %filename% %serverfolder%
:reset
set "serverfolder="
set "filename="
作者: nbic
时间: 2007-5-24 12:32
Quote: |
Originally posted by terse at 2007-5-24 12:18 PM:
去掉的 %serverfolder:~6%
@echo off
call :reset
for /f "tokens=2 delims==" %%a in ('findstr /i "serverfolder filename" a.xml') do (
if not defined serverfolder ... |
|
这个我已经改了。。能帮忙参考一下我31楼的帖的内容吗?
作者: bjsh
时间: 2007-5-24 12:51
两者都有了;
开始先根据c:\avp\index\6\a.xml把其他所需的xml找出来;
然后根据找出来的xml;再根据其内容把相关文件复制到相应文件夹;
@echo off & setlocal enabledelayedexpansion
call :reset
for /f "tokens=2 delims== " %%a in ('findstr /i "serverfolder filename" c:\avp\index\6\a.xml') do (
if not defined serverfolder (set "serverfolder=%%~a") else (
if not defined filename set "filename=%%~a" & call :start1
)
)
move c:\AVP\index\6\a.xml c:\
for /f %%l in ('dir /b /s c:\AVP\*.xml') do (
call :reset
for /f "tokens=1,2 delims== " %%a in ('findstr /i "serverfolder filename" %%l') do (
set "var=%%a"
if "!count!"=="1" if /i "!var:~-8!"=="filename" copy c:\1\!filename! %%~dpl & set "count="
if /i "!var:~-8!"=="filename" set "filename=%%~b" & set /a count=1
if /i "!var:~-12!"=="serverfolder" set "serverfolder=%%~b"
if defined serverfolder if defined filename call :start
)
if defined filename copy c:\1\!filename! %%~dpl
)
move c:\a.xml c:\AVP\index\6\
copy c:\1\xml-0607g.pbv c:\avp\index\6\
copy c:\1\kl-0607g.pbv c:\avp\index\6\
rd /s /q c:\avp\7g.pbv
pause & goto :eof
:start1
set "serverfolder=%serverfolder:~6%"
:start
set "serverfolder=%serverfolder:/=\%"
md c:\AVP\%serverfolder%
copy c:\1\%filename% c:\AVP\%serverfolder%
:reset
set "serverfolder="
set "filename="
set "count="
[
Last edited by bjsh on 2007-5-24 at 05:36 PM ]
作者: terse
时间: 2007-5-24 13:11
Quote: |
Originally posted by nbic at 2007-5-24 09:17:
通过完成a.xml 上面的操作程序,会生产一个AVP文件夹,AVP里面的每个子文件夹都有一个xml文件,我想完成的是,将每个xml文件都安照处理a.xml 的方式 ... |
|
每个文件夹里都有xml文件?不会吧?