Board logo

标题: 这个批处理文件哪儿有问题  [打印本页]

作者: xuan5272095     时间: 2003-8-23 00:00    标题: 这个批处理文件哪儿有问题 


这是我仿照书上列子遍的*.bat文件,可运行时会出错,
请帮我看看



@echo off
choice /c:dme defrag,mem,end
if errorlevel 3 goto defrag
if errorlevel 2 goto mem
if errotlevel 1 goto end

:defrag
c:\windows\defrag.exe
goto end
:mem
mem
goto end
:end
echo good bye

运行后选d或m都没错,选e会出现选d的结果

[此贴子已经被作者于2003-8-23 16:07:24编辑过]



作者: willsort     时间: 2003-9-6 00:00
Re xuan5272095:

    很明显是个输入错误:
   if errotlevel 3 goto end  -> if errorlevel 3 goto end

作者: iceboy     时间: 2003-9-6 00:00
进行选择: choice /c:dme defrag,mem,end (没错)
选择 end (errorlevel 1)
if errorlevel 3 goto defrag -- errorlevel 小于 3,跳过
if errorlevel 2 goto mem -- errorlevel 小于 2,跳过
if errotlevel 1 goto end -- 错误语句,跳过并显示错误信息
:defrag -- 标签,跳过
c:\windows\defrag.exe -- 执行
goto end -- 到结尾

这就是选e会出现选d的结果的原因

加一句 goto error

  Quote:
if errorlevel 3 goto defrag
if errorlevel 2 goto mem
if errotlevel 1 goto end
goto error

然后做一个 error 项

:error
ECHO Choice.com not found
goto end

可以避免找不到 choice.com 而发生的错误 (同时 BAT 写错的情况也会显示错误信息)

[此贴子已经被作者于2003-9-6 22:23:45编辑过]