中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-07-14 23:31
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 查找文件并操作(查看路径、复制、删除).bat (9.5更新) 查看 7,755 回复 23
16 发表于 2006-09-03 01:38 ·  中国 甘肃 张掖 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
Originally posted by namejm at 2006-9-1 22:09:


  你还是漏掉了一个非常重要的文件:fc_name.txt。这个文件你漏掉的话,麻烦就大了——如果你分几次查询不同的文件,然后直接就选了删除,嘠...

没有明白,我建这个文件夹只是想 以后知道 我都查找、复制、删除过那些文件,和删除没有关系的啊
17 发表于 2006-09-03 13:21 ·  中国 四川 成都 鹏博士宽带
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  因为在你的代码中,for语句是逐行解析文本的,所以,如果用的代码来过滤指定目录的记录的话,你的 %dati%_9.txt 中有多少行,find %dati%_6.txt /v /i "%%a">>%dati%_5.txt 语句就执行了多少次,你应该换一种过滤方案才能从根本上解决问题。

  刚才在测试的过程中,发现高级搜索下面不搜索某些特定路径的选择中,只能选y,而不能选n,选n就提示说是无效操作,这是因为你没有对选n时作跳转导致的;选择完毕之后,尚未按任意键执行下一步,就已经生成了很多临时文件,这个属于操作时机过早,应该在按任意键之后才开始生成;并且搜索完毕之后,成功提示中的路径名是错误的;

  今天就暂时测试到这个地方,改天再全面地测试一下——代码越来越多了,看起来也有点吃力,特别是碰到表述不清的地方,请你注意修改提示语言,使它既简洁又准确,不让让别人产生误解。

for /f "tokens=* delims= " %%a in (%dati%_9.txt) do (find %dati%_6.txt /v /i "%%a">>%dati%_5.txt)
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
18 发表于 2006-09-04 08:05 ·  中国 甘肃 张掖 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
Originally posted by namejm at 2006-9-3 13:21:
  因为在你的代码中,for语句是逐行解析文本的,所以,如果用的代码来过滤指定目录的记录的话,你的 %dati%_9.txt 中有多少行,find %dati%_6.txt /v ...

这个我也在想别的方法进行解决,不过现在还没有想到
19 发表于 2006-09-08 00:55 ·  中国 广东 佛山 广东睿江科技有限公司
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
Originally posted by he200377 at 2006-9-4 08:05:

这个我也在想别的方法进行解决,不过现在还没有想到

  其实更改过滤方案之后,几行简洁的代码就能解决问题的。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
20 发表于 2006-09-08 04:45 ·  中国 甘肃 张掖 临泽县 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
Originally posted by namejm at 2006-9-8 00:55:

  其实更改过滤方案之后,几行简洁的代码就能解决问题的。

呵呵,我改来改去怎么测试的时候发现搜索速度还没有 win 自带的快,真不知道win是怎么实现搜索的
21 发表于 2006-09-08 04:52 ·  中国 广东 佛山 广东睿江科技有限公司
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  那是因为你用了好几个for语句来读取文本的内容。要知道,for语句解析文本可是全文解析啊,大量的for操作当然会导致效率的低下,换一个过滤方案可大大提高搜索效率。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
22 发表于 2006-09-08 05:19 ·  中国 湖北 孝感 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
Originally posted by namejm at 2006-9-8 04:52:
????????????????????????????????????for?????????????????????????????????????????????for???????????????????????????????????????????????????for?????????????????????????????????????????????????????????...

?????????win ?????????????????? ??????
23 发表于 2006-11-23 15:23 ·  中国 北京 鹏博士BGP
初级用户
积分 114
发帖 47
注册 2006-11-20 04:17
19年会员
UID 71105
性别 男
状态 离线
学习中...
24 发表于 2006-11-23 21:38 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
昨天太忙,不知竟多了这么多好帖子。
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
论坛跳转: