中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-23 13:29
47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,273 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]求查找文件的批处理
可打印版本  1,983 / 6
第1楼 lin8197 发表于 2004-12-16 00:00
初级用户 发帖 36 积分 186
[求助]求查找文件的批处理
已知:n:\aaaa\ 里面有 a.exe b.exe c.bat ... 等几个文件,其中N=C:,D:,E:... M:
求:查找到aaaa文件夹里的文件,并COPY到C:\的批处理。
本菜鸟因为对循环语句不熟悉,只好一个盘一个盘地找,太麻烦,请大侠帮我写个简单的。
第2楼 willsort 发表于 2004-12-16 00:00
元老会员 发帖 1,512 积分 4,432
Re lin8197:
一个简化的程序,忽略了许多细节,并未经测试,你先试用一下,有什么问题在讨论。
@echo off
if == %0 c d e f g h i j k l m
:loop
if == goto end
for %%f in (a.exe b.exe c.bat) do if exist %1:\aaaa\%%f copy %1:\aaaa\%%f c:\
shift
goto loop
:end

第3楼 lin8197 发表于 2004-12-16 00:00
初级用户 发帖 36 积分 186
多谢解答,我试了,
在XP下可行,但在DOS及98不行,我主要在DOS下使用,请帮忙改一下
第4楼 willsort 发表于 2004-12-16 00:00
元老会员 发帖 1,512 积分 4,432
Re lin8197: 请首先告诉我问题出在什么地方(错误提示),然后在告诉我你的使用要求(比如是在特定机型上使用还是在一系列机型上使用)。总之,简单而准确地描述是很重要的, 我想到的问题可能有,文件名问题(含有空格),磁盘盘符问题(有可能碰到未准备好的光驱),你的问题是其中之一吗?
第5楼 lin8197 发表于 2004-12-16 00:00
初级用户 发帖 36 积分 186
d:\>abc
0 file(s) copied
0 file(s) copied
0 file(s) copied

CDR101: Not ready reading drive G我在虚拟机中试,以上是提示
第6楼 lin8197 发表于 2004-12-16 00:00
初级用户 发帖 36 积分 186
对了,我没说清楚,我要在不同的机上用,每台机上的分区数是不同的
第7楼 willsort 发表于 2004-12-17 00:00
元老会员 发帖 1,512 积分 4,432
Re lin8197: 看样子首先遇到了非硬盘盘符判断问题。因为98和dos用if exist 访问未准备好的盘时会出现错误提示,而xp,2000是忽略这个错误。 解决它,首先保证盘符列表尽可能的小,我不知道你的c~m是如何确定的,如果可能的话,尽量缩小其范围。另外,对于每个盘符都应该做一个是否准备好的检测,这个最简单的办法是使用第三方工具dready.com,来自hosrt32工具包,用法如下(程序同样未经测试)。如果你的环境不适宜使用第三方工具,可以动态生成一个脚本,然后使用debug来调用dos中断来得到类似的效果。 另外,如果在dos6.xx以下使用,请注意使用8.3文件名约定,否则会出现一些意外的错误。
@echo off
if == %0 $ c d e f g h i j k l m
:loop
shift
if == goto end
dready %1
if errorlevel 2 goto loop
for %%f in (a.exe b.exe c.bat) do if exist %1:\aaaa\%%f copy %1:\aaaa\%%f c:\
goto loop
:end
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023