[ Last edited by BAT on 2006-8-15 at 22:44 ]作者: NaturalJ0 时间: 2006-8-15 23:07 用 IF EXIST 判断是否有目录
多用几个变量
判断变量用不同的 CHOICE
[ Last edited by NaturalJ0 on 2006-8-16 at 09:17 ]作者: fastslz 时间: 2006-8-15 23:23 @echo off
if exist c:\d\* set menu=12345
if "%menu%"=="12345" goto ok
if exist c:\c\* set menu=1234
if "%menu%"=="1234" goto ok
if exist c:\b\* set menu=123
if "%menu%"=="123" goto ok
if exist c:\a\* set menu=12
if "%menu%"=="12" goto ok
if "%menu%"=="" goto error
:ok
echo 按键1........
for %%a in (12 123 1234 12345) do if "%menu%"=="%%a" echo 按键2........
for %%a in (123 1234 12345) do if "%menu%"=="%%a" echo 按键3........
for %%a in (1234 12345) do if "%menu%"=="%%a" echo 按键4........
if "%menu%"=="12345" echo 按键5........
choice/c:%menu%
IF errorlevel 1 if not errorlevel 2 goto 1
IF errorlevel 2 if not errorlevel 3 goto 2
IF errorlevel 3 if not errorlevel 4 goto 3
IF errorlevel 4 if not errorlevel 5 goto 4
IF errorlevel 5 if not errorlevel 6 goto 5
:error
[ Last edited by fastslz on 2006-8-16 at 01:48 ]作者: BAT 时间: 2006-8-16 22:48 谢谢fastslz兄提供的解决问题的思路,不过方法判断方法似乎存在问题,
如果存在c:\d\*.* set menu=12345,goto ok
下面的四个FOR语句将产生五个echo
而事实上仅存在一个文件夹,
还是我没有理解lastslz兄的内容?
[ Last edited by BAT on 2006-8-16 at 22:54 ]作者: fastslz 时间: 2006-8-16 23:11 确实没理解,看下面2个例子
假设C盘有B文件夹此时会出现如下
@echo off
echo 按键1........
echo 按键2........
echo 按键3........
choice/c:123
IF errorlevel 1 if not errorlevel 2 goto 1
IF errorlevel 2 if not errorlevel 3 goto 2
IF errorlevel 3 if not errorlevel 4 goto 3
IF errorlevel 4 if not errorlevel 5 goto 4
IF errorlevel 5 if not errorlevel 6 goto 5
假设C盘有D文件夹此时会出现如下
@echo off
echo 按键1........
echo 按键2........
echo 按键3........
echo 按键4........
echo 按键5........
choice/c:12345
IF errorlevel 1 if not errorlevel 2 goto 1
IF errorlevel 2 if not errorlevel 3 goto 2
IF errorlevel 3 if not errorlevel 4 goto 3
IF errorlevel 4 if not errorlevel 5 goto 4
IF errorlevel 5 if not errorlevel 6 goto 5