![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-04 17:21 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 问一个有关文本内容的难题 |
| 可打印版本 2,214 / 34 |
| 第16楼 bjsh | 发表于 2007-05-23 11:40 |
| 银牌会员 发帖 621 积分 2,000 | |
其中的 md D:\AVP\%serverfolder% 不是写在那里的; 否则根本就执行不到这一句; 写在copy前面; :start标签的里面; 还有 我把你在一楼贴的代码保存为 a.xml; 如果不是的请自行修改代码红色部分 导致问题的根本原因是因为你加上的pause&exit 好好读读源码 第一行是call :reset 执行reset时你加了pause&pause不直接退出干吗.. 根据你的意思修改了下 [ Last edited by bjsh on 2007-5-23 at 04:09 PM ] |
|
| 第17楼 lxmxn | 发表于 2007-05-23 13:18 |
| 版主 发帖 4,938 积分 11,386 | |
|
use sed+bat |
|
| 第18楼 nbic | 发表于 2007-05-23 13:39 |
| 初级用户 发帖 61 积分 135 | |
Originally posted by bjsh at 2007-5-23 11:40 AM: 你的这个程序,运行后,提示:系统找不到指定文件。如果这个程序的工具和文件不在一起的话,它会提示:打不开xml文件 |
|
| 第19楼 nbic | 发表于 2007-05-23 13:46 |
| 初级用户 发帖 61 积分 135 | |
Originally posted by lxmxn at 2007-5-23 01:18 PM: |
|
| 第20楼 lxmxn | 发表于 2007-05-23 14:23 |
| 版主 发帖 4,938 积分 11,386 | |
|
汗一个...
问问题就把问题说清楚,不要别人给了答案又来一个不符合要求。 |
|
| 第21楼 bjsh | 发表于 2007-05-23 16:14 |
| 银牌会员 发帖 621 积分 2,000 | |
Originally posted by nbic at 2007-5-23 01:39 PM: 那个程序必须和a.xml以及欲复制的文件在同一个目录下; 否则如果找不到a.xml则显示: 无法打开a.xml 如果欲复制的文件没在当前目录;自然出现"系统找不到指定文件" |
|
| 第22楼 nbic | 发表于 2007-05-23 18:25 |
| 初级用户 发帖 61 积分 135 | |
Originally posted by bjsh at 2007-5-23 04:14 PM: 用如下程序。 @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里面所涉及的文件都在同一个文件夹里面。。 |
|
| 第23楼 bjsh | 发表于 2007-05-23 20:17 |
| 银牌会员 发帖 621 积分 2,000 | |
|
怪我了;
怪我当时一粗心复制代码时set "serverfolder=%serverfolder:~6% 后面少了个引号; 而且当时写的时候 只写了echo %filename% 将被复制到 %serverfolder% 而没注意到%serverfolder%里的斜杠是反的; 修正代码如下; 测试结果如下: 至于少了——index/6这一支是因为你的xml也没有这个路径; 可以自行添加;
[ Last edited by bjsh on 2007-5-23 at 08:28 PM ] |
|
| 第24楼 nbic | 发表于 2007-05-23 21:07 |
| 初级用户 发帖 61 积分 135 | |
Originally posted by bjsh at 2007-5-23 08:17 PM: 刚才试了试。。可以啊。。呵呵 不过,工具要和a.xml以及a.xml里面的filename在同一个文件夹里面,才可以完成解读和复制功能。。能不能,将工具当独抽出来,然后对所有xml文件进行解读和复制操作呢? 还有个问题,a.xml文件之前,能不能加路径啊?如果可以的话,那么工具是不是可以当独放到文件夹外面啊? |
|
| 第25楼 bjsh | 发表于 2007-05-23 22:27 |
| 银牌会员 发帖 621 积分 2,000 | |
|
是的;只要给a.xml和filename指定路径;
这个程序放哪都可以了; 其实和他们放一起不过是因为省略了当前路径而已; 限定路径后;就无所谓放哪了. |
|
| 第26楼 nbic | 发表于 2007-05-23 22:42 |
| 初级用户 发帖 61 积分 135 | |
|
刚才我发完帖自己试了试。可以。。不错。。
因为xml的文件不是都在一个文件夹里面。而且,每个xml文件里面的内容所涉及的文件也不都在同一个文件夹里面。现在我想这样来处理。。 1、先将所有*0607g.xml的文件用xcopy复制到一个文件夹里面; 2、利用上面的程序,来进行xml文件的读取和复制操作。 现在有个问题。能不能将所有xml文件都和a.xml放在一起。那么进行读取和复制操作时,全部一起完成?如果不能。那么是不是重复上面的程序,只要将a.xml改改名称,将其里面所涉及的文件的路径再改改就行? |
|
| 第27楼 terse | 发表于 2007-05-24 00:29 |
| 银牌会员 发帖 946 积分 2,404 | |
|
请教一下:set "serverfolder=%serverfolder:~6%"在这里的用处?
为什么不可以直接copy %filename% %serverfolder% |
|
| 第28楼 bjsh | 发表于 2007-05-24 06:20 |
| 银牌会员 发帖 621 积分 2,000 | |
|
起初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 ] |
|
| 第29楼 nbic | 发表于 2007-05-24 07:30 |
| 初级用户 发帖 61 积分 135 | |
|
现在碰到一个问题。由于我完成a.xml里面文件的复制后,要接着进行其它xml文件的操作时。我采用重复利用操作a.xml文件时的程序(当然,将里面的一些内容小改了下,如:文件名、路径之类)。结果运行时发现,不但其它的重复程序不能完成任务,而且最初的那个操作a.xml文件的程序也出现问题,不能完成复制。。
这个问题该如何解决啊? 如果不用重复利用操作a.xml 时的程序,那么,在操作别的xml 文件时,该怎么写程序呢? |
|
| 第30楼 bjsh | 发表于 2007-05-24 08:40 |
| 银牌会员 发帖 621 积分 2,000 | |
|
而且最初的那个操作a.xml文件的程序也出现问题
?? 听不大懂; 尽可能的把你的东西;只像a.xml这样的xml按照原来的目录层次结构打包上来; |
|
| 上一页 1 2 3 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |