![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-02 00:34 |
共 48,037 主题排行 / 350,122 发帖 / 今日 2 篇 / 48,250 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [原创][BAT]DOS下的文本遍历和文件遍历代码(6个) |
| 可打印版本 15,605 / 23 |
| 第1楼 willsort | 发表于 2004-02-11 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
[原创][BAT]DOS下的文本遍历和文件遍历代码(6个) [ Last edited by willsort on 2006-7-29 at 20:51 ] |
|
| 第2楼 willsort | 发表于 2004-02-11 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
[ Last edited by willsort on 2006-7-29 at 20:46 ] |
|
| 第3楼 willsort | 发表于 2004-02-11 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
[ Last edited by willsort on 2006-7-29 at 20:47 ] |
|
| 第4楼 Kinglion | 发表于 2004-02-12 00:00 |
| 铂金会员 发帖 1,924 积分 5,798 来自 金獅電腦軟體工作室 | |
|
楼主真是批处理高手,也可以称为批处理专家了。佩服!佩服!
|
|
| 第5楼 willsort | 发表于 2004-02-26 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
[ Last edited by willsort on 2006-7-29 at 20:47 ] |
|
| 第6楼 笑傲江湖 | 发表于 2004-02-26 00:00 |
| 初级用户 发帖 61 积分 271 | |
|
请教:
if exist filelist.txt if exist xset.asd goto loop set info=%1 set base=%2 是什么意思?哪里可找到的关批处理操作的资料? |
|
| 第7楼 willsort | 发表于 2004-02-27 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re 笑傲江湖:
if exist filelist.txt if exist xset.asd goto loop rem 如果同时存在文件 filelist.txt 和 xset.asd 则转向 loop 开始循环 set info=%1 rem 将第一参数 %1 赋给环境变量 info set base=%2 rem 将第二参数 %2 赋给环境变量 base 批处理操作的资料,基础知识可以从网络上的dos教程中找到,中级和高级技巧则必须依靠多看多改多编来获得。从99年以前的旧电脑杂志上应该可以找到不少关于批处理编程的技巧,本站以及一些dos论坛也往往有很多经典的批处理程序可供研摩参考。先给你一个链接吧。 http://model.chinajewelry.net/dos/dosbbs/dispbbs.asp?boardID=12&ID=8905 |
|
| 第8楼 龙王 | 发表于 2004-04-20 00:00 |
| 银牌会员 发帖 334 积分 1,186 | |
|
很有用的批处理
通过这个帖子跟楼主学到不少技巧 不过有些明白 有些命令行不是很懂 还要多看几遍 如果都象你对笑傲江湖解释的那样 简直是经典教程菜鸟的福音 尽管如此还是太感谢了 |
|
| 第9楼 Kinglion | 发表于 2004-04-21 00:00 |
| 铂金会员 发帖 1,924 积分 5,798 来自 金獅電腦軟體工作室 | |
|
7 楼的地址现在应该是:
http://dos.e-stone.cn/dosbbs/dispbbs.asp?boardID=12&ID=8905 欢迎大家支持楼主。 |
|
| 第10楼 龙王 | 发表于 2004-04-21 00:00 |
| 银牌会员 发帖 334 积分 1,186 | |
以下是引用Kinglion在2004-4-21 16:16:08的发言: 太好了 感谢 |
|
| 第11楼 Climbing | 发表于 2004-10-15 00:00 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
Re WillSort:我在Windows 20003的dos方式下试验第一个程序不能通过,但原理基本上是搞明白了。通过fc提取出第一个文件,然后通过debug修改setfile.bat第一行文件名前面的字符为set file=,然后执行该批处理获得需要的环境变量。但在2003下有这样两个问题:1、fc不能将文件与nul设备进行比较,因此可以用另一个空文件来代替。2、debug不能正确修改setfile.bat,我找不到解决办法,因为对debug太不熟悉了。
|
|
| 第12楼 willsort | 发表于 2004-10-18 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
[ Last edited by willsort on 2005-8-14 at 22:44 ] |
|
| 第13楼 willsort | 发表于 2004-10-18 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
[ Last edited by willsort on 2005-8-14 at 22:48 ] |
|
| 第14楼 willsort | 发表于 2004-10-18 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re Climbing:
在2000sp4 下出现类似的问题,第二个问题实际上也是fc的不兼容问题,他在按行 号显示时,每行文字前有8 个字节位,而不是dos6和win9x 下的9 个,所以解决起来也 很简单,将debug 脚本中的 e 100 'set file='改为 e 100 'set fil=' 即可。 但是,这只是就事论事而已,以上的提到的三个批处理,只是我在dos6.22 下练兵 用的试验原型,做得很粗糙,自从今年3 月份正式转向win98 之后,使用中遇到了很多 新问题,比如文件名包含空格的问题,系统/ 隐藏属性目录的问题;在nt下使用,又遇 到了中文文件名的问题;而且由于循环体中使用了过多的文本流控制,导致了效率的严 重低下;另外,三个程序功能上和实现上并没有太大的差别,没有拆分的必要。 综所上述,将以上代码重写就成为必须。合并代码,弥补漏洞,改善性能,书写文 档,就出现了所谓的 V2 版,这中间其实并没有花很多功夫。 然而,一个偶然的下午,突然心血来潮,何不将visit 的命令行功能做一下增强, 比如支持多个路径、多个过滤器(filter)、多个文件列表,原想只是加一个命令行参数 分析循环,然而真正实现起来,却再次体会到了命令行的复杂,if for嵌套时冲定向输 出,判定目录时根目录与子目录的不同,for 对过滤器的低能替换(win9x/dos) ,一个 个新问题摩肩接踵,层出不穷,竟然整整耗了我大半个工作日的时间,才勉强实现了一 个粗糙的版本,这就是所谓的 V2CE 版,对与严格的测试我没有多大的信心。 现在,再回头看我的工作,其实那个 V2CE 版其实是没有多大的应用价值。多个路 径和过滤器,完全可以通过多次调用visit 来实现,而且实际上,我们大多数情况下只 用一个路径和过滤器;而且,多参数控制带来了易用度的下降,用户总是对参数繁多的 程序有一定的心理障碍,我个人对dos 压缩软件的爱好,从高到低依次是rar,zip,arj, 易用度就是第一靠量;另外,最重要的是,多参数控制导致了代码量和复杂性的大幅提 升,这个程序一度让我钻进了if for构建的幽魂迷宫而不知南北西东,程序的可读性越 来越差,调试起来也越来越困难,同时兼容性上拉上了更多的绊马索。 这些,就是功能提升所付出的代价,虽然这只是一个比较极端的例子,但是功能与 简洁的平衡在程序设计的其重要性可见一斑。亲和性的界面并不意味着亲和性的代码, 人性化的需求并不意味着人性化的实现,一味将使用方的复杂性转嫁给设计者(比如 Windows), 并不是一个很聪明的主意,反之亦然(比如Linux ),这尚不考虑代码功 能增强对设计方和使用方的双重施压。 “复杂创造简单(complex makes simple)”,诚然! [ Last edited by willsort on 2005-8-14 at 22:53 ] |
|
| 第15楼 hq1966 | 发表于 2005-12-04 22:19 |
| 新手上路 发帖 1 积分 2 来自 hn | |
|
好厉害,存下来认真学习。
谢谢willsort版主。 |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |