|
lin8197
初级用户
积分 186
发帖 36
注册 2003-10-2
状态 离线
|
『楼 主』:
[求助]求查找文件的批处理
已知:n:\aaaa\ 里面有 a.exe b.exe c.bat ... 等几个文件,其中N=C:,D:,E:... M:
求:查找到aaaa文件夹里的文件,并COPY到C:\的批处理。
本菜鸟因为对循环语句不熟悉,只好一个盘一个盘地找,太麻烦,请大侠帮我写个简单的。
[此贴子已经被作者于2004-12-16 9:24:38编辑过]
|
|
2004-12-16 00:00 |
|
|
willsort
元老会员
Batchinger
积分 4432
发帖 1512
注册 2002-10-18
状态 离线
|
『第
2 楼』:
Re lin8197:
一个简化的程序,忽略了许多细节,并未经测试,你先试用一下,有什么问题在讨论。
Quote: | @echo off
if [%1]==[] %0 c d e f g h i j k l m
:loop
if [%1]==[] 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 |
|
[此贴子已经被作者于2004-12-16 17:05:46编辑过]
|
※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得! |
|
2004-12-16 00:00 |
|
|
lin8197
初级用户
积分 186
发帖 36
注册 2003-10-2
状态 离线
|
『第
3 楼』:
多谢解答,我试了,
在XP下可行,但在DOS及98不行,我主要在DOS下使用,请帮忙改一下
|
|
2004-12-16 00:00 |
|
|
willsort
元老会员
Batchinger
积分 4432
发帖 1512
注册 2002-10-18
状态 离线
|
『第
4 楼』:
Re lin8197: 请首先告诉我问题出在什么地方(错误提示),然后在告诉我你的使用要求(比如是在特定机型上使用还是在一系列机型上使用)。总之,简单而准确地描述是很重要的, 我想到的问题可能有,文件名问题(含有空格),磁盘盘符问题(有可能碰到未准备好的光驱),你的问题是其中之一吗?
|
※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得! |
|
2004-12-16 00:00 |
|
|
lin8197
初级用户
积分 186
发帖 36
注册 2003-10-2
状态 离线
|
『第
5 楼』:
d:\>abc
0 file(s) copied
0 file(s) copied
0 file(s) copied
CDR101: Not ready reading drive G我在虚拟机中试,以上是提示
[此贴子已经被作者于2004-12-17 8:06:36编辑过]
|
|
2004-12-16 00:00 |
|
|
lin8197
初级用户
积分 186
发帖 36
注册 2003-10-2
状态 离线
|
『第
6 楼』:
对了,我没说清楚,我要在不同的机上用,每台机上的分区数是不同的
|
|
2004-12-16 00:00 |
|
|
willsort
元老会员
Batchinger
积分 4432
发帖 1512
注册 2002-10-18
状态 离线
|
『第
7 楼』:
Re lin8197: 看样子首先遇到了非硬盘盘符判断问题。因为98和dos用if exist 访问未准备好的盘时会出现错误提示,而xp,2000是忽略这个错误。 解决它,首先保证盘符列表尽可能的小,我不知道你的c~m是如何确定的,如果可能的话,尽量缩小其范围。另外,对于每个盘符都应该做一个是否准备好的检测,这个最简单的办法是使用第三方工具dready.com,来自hosrt32工具包,用法如下(程序同样未经测试)。如果你的环境不适宜使用第三方工具,可以动态生成一个脚本,然后使用debug来调用dos中断来得到类似的效果。 另外,如果在dos6.xx以下使用,请注意使用8.3文件名约定,否则会出现一些意外的错误。
Quote: | @echo off
if [%1]==[] %0 $ c d e f g h i j k l m
:loop
shift
if [%1]==[] 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 |
|
|
※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得! |
|
2004-12-17 00:00 |
|