![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-04 16:24 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 问一个有关文本内容的难题 |
| 可打印版本 2,210 / 34 |
| 第1楼 nbic | 发表于 2007-05-21 20:58 |
| 初级用户 发帖 61 积分 135 | |
|
问一个有关文本内容的难题 下面是一个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 ] |
|
| 第2楼 bjsh | 发表于 2007-05-21 22:19 |
| 银牌会员 发帖 621 积分 2,000 | |
|
Filename="av-i386-0607g.xml"
这些文件在当前文件夹吗?? |
|
| 第3楼 zhoushijay | 发表于 2007-05-22 10:23 |
| 高级用户 发帖 375 积分 845 | |
|
不懂XML,你能不能说的通俗一点
|
|
| 第4楼 nbic | 发表于 2007-05-22 19:31 |
| 初级用户 发帖 61 积分 135 | |
Originally posted by bjsh at 2007-5-21 10:19 PM: 是的。。 |
|
| 第5楼 nbic | 发表于 2007-05-22 19:33 |
| 初级用户 发帖 61 积分 135 | |
Originally posted by zhoushijay at 2007-5-22 10:23 AM: 它其实就是一种文档文件。可用记事本的形式打开的。。很多软件安装文件夹里面都有这类文件的啊。。 |
|
| 第6楼 vkill | 发表于 2007-05-22 20:56 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
|
sed
|
|
| 第7楼 nbic | 发表于 2007-05-22 21:28 |
| 初级用户 发帖 61 积分 135 | |
Originally posted by vkill at 2007-5-22 08:56 PM: 能讲的清楚一些吗?对这个命令比较陌生。。谢了。。! |
|
| 第8楼 bjsh | 发表于 2007-05-22 23:31 |
| 银牌会员 发帖 621 积分 2,000 | |
|
我写了个p的;
我把关键代码写了; 剩下的根据情况自行修改 :start处; sed应该比这个简单吧; [ Last edited by bjsh on 2007-5-23 at 08:11 PM ] |
|
| 第9楼 nbic | 发表于 2007-05-23 07:34 |
| 初级用户 发帖 61 积分 135 | |
Originally posted by bjsh at 2007-5-22 11:31 PM: |
|
| 第10楼 bjsh | 发表于 2007-05-23 09:30 |
| 银牌会员 发帖 621 积分 2,000 | |
|
to :nbic
上面的代码我只写了关键部分; 复制部分我没写; 在命令行下运行;你会看到结果;不要直接双击;或者加pause; 其中的复制部分我没写我写的是 echo %filename% 保存在 %serverfolder% 这里是留给你自己修改的; 比如如果已经存在bases/av/avc/i386 直接copy %filename% c:\(其他盘自行修改)%serverfolder% 如果目录不存在;无非是多个md %serverfolder% |
|
| 第11楼 nbic | 发表于 2007-05-23 10:12 |
| 初级用户 发帖 61 积分 135 | |
|
好的。。试试看。。
|
|
| 第12楼 nbic | 发表于 2007-05-23 10:28 |
| 初级用户 发帖 61 积分 135 | |
|
一下是我稍微修改后的程序。用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 |
|
| 第13楼 zhoushijay | 发表于 2007-05-23 10:52 |
| 高级用户 发帖 375 积分 845 | |
|
有几点注明一下:
1。因为COPYFILE不能在HTTP上使用,所以我把路径改成了bases\ids\i386\ 2。此程序必须在bases的上一及目录中运行 3。所有文件必须同时存在,缺一不可,并且在同一目录中 4。11.xml为上面的文件 [ Last edited by zhoushijay on 2007-5-23 at 11:05 AM ] |
|
| 第14楼 nbic | 发表于 2007-05-23 11:10 |
| 初级用户 发帖 61 积分 135 | |
|
楼上朋友的第二条比较苛刻。。我要编辑的xml 文件有26个那么多,而且所存放的文件夹又大都不同。。所以,为难哦。。
|
|
| 第15楼 zhoushijay | 发表于 2007-05-23 11:31 |
| 高级用户 发帖 375 积分 845 | |
|
Filename="av-i386-0607g.xml"
如果不在同一目录中,那么filename是不是因该写上路径,否则XML里也会无效的吧 |
|
| 1 2 3 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |