Board logo

标题: 请教一个搜索,并判断执行的方法 [打印本页]

作者: qxb2005     时间: 2006-11-7 00:26    标题: 请教一个搜索,并判断执行的方法

近一段时间在这里学到了不少,先向版主和各位高手道一声谢!
我想在DOS下实现这样一个功能,全盘搜索1.txt,2.txt,3.txt,如果找到1.txt,则执行1.bat(就不需要找2.txt,3.txt,如未找到1.txt,则找2.txt),如找到2.txt(就不需要找3.txt,如未找到2.txt,则找3.txt),则执行2.bat,如找到3.txt,则执行3.bat,如3个文件都没找到返回“未找到指定文件”信息。我试写了几次,都不对,请各位帮忙,谢了。。。
作者: NaturalJ0     时间: 2006-11-7 00:37
全盘找,就要按 C D E 一个一个找过去。

比如
C 有 2.TXT
D 有 1.TXT

那你的要求是运行 1 还是 2 呢?
也就是说,C 没有 1.TXT 时是继续在 D 找 1.TXT 还是马上在 C 找 2.TXT ?

你总共几个盘,这批处理是在纯 DOS 下用,还是 CMD 环境下用?
作者: qxb2005     时间: 2006-11-7 03:01
多谢帮忙,1.txt,2.txt,3.txt都有可能在C、D、E、F盘中,这个批处理在纯dos下使用。C 没有 1.TXT 时是继续在 D、E、F 找 1.TXT,如都没有才去 找 2.TXT 。。。
作者: qxb2005     时间: 2006-11-7 03:11
如C 有 2.TXT,D 有 1.TXT,发现1. txt,则运行1.bat,其它的则不运行
作者: 不得不爱     时间: 2006-11-7 04:27
a.bat
call b.bat 1 c d e f g h i j k l m n o p q
if %dd%.==1. goto 1
call b.bat 2 c d e f g h i j k l m n o p q
if %dd%.==1. goto 1
call b.bat 3 c d e f g h i j k l m n o p q
if %dd%.==1. goto 1
:1
b.bat
set a=%1
:1
dir/s %2:\%a%.txt
SHIFT
if %2.==. goto a
IF ERRORLEVEL 1 goto 1
set dd=1
%1.bat
:a
[ Last edited by 不得不爱 on 2006-11-6 at 04:29 PM ]
作者: qxb2005     时间: 2006-11-7 09:35
多谢版主,我看的不是太懂,学习中