Board logo

标题: 关于choice 命令 [打印本页]

作者: hotdog     时间: 2003-8-16 00:00    标题: 关于choice 命令

choice 命令的返回码为1234……是按什么顺序排的 如choice /c:dme defrag,mem,end 哪个返回码为1 哪个返回码为2 哪个返回码为3 交换次序返回码会变吗 如choice /c:dem defragend,mem 哪为大哥帮忙回答一下

作者: hotdog     时间: 2003-8-16 00:00
怎么没人帮我啊

作者: Roy     时间: 2003-8-16 00:00
以下是引用hotdog在2003-8-16 3:12:22的发言: choice 命令的返回码为1234……是按什么顺序排的 如choice /c:dme defrag,mem,end 哪个返回码为1 哪个返回码为2 哪个返回码为3 交换次序返回码会变吗 如choice /c:dem defrag,end,mem 哪为大哥帮忙回答一下
choice /c:dem defrag,end,mem ^----回码为1 ^---回码为2 ^--回码为3

作者: hotdog     时间: 2003-8-16 00:00
那请问以下为什么要这样写 可以解释一下吗 @echo off choice /c:dme defrag,mem,end if errorlevel 3 goto defrag if errorlevel 2 goto mem if errotlevel 1 goto end

作者: hzy     时间: 2003-8-16 00:00
写成这样比较明燎罢了! 你可以写成这样: choice /c:dme d,m,e 也可以写成这样: choice /c:dme 结果是一样的!

作者: hzy     时间: 2003-8-16 00:00
只不过屏幕的提示不同而已!

作者: Roy     时间: 2003-8-16 00:00
以下是引用hotdog在2003-8-16 16:46:38的发言: 那请问以下为什么要这样写 可以解释一下吗 @echo off  choice /c:dme defrag,mem,end  if errorlevel 3 goto defrag  if errorlevel 2 goto mem  if errotlevel 1 goto end 
你搞錯了吧..... 是這樣才對吧: @echo off choice /c:dme defrag,mem,end if errorlevel 3 goto end if errorlevel 2 goto mem if errotlevel 1 goto defrag

作者: hzy     时间: 2003-8-16 00:00
以下是引用Roy在2003-8-16 17:02:12的发言:
以下是引用hotdog在2003-8-16 16:46:38的发言: 那请问以下为什么要这样写 可以解释一下吗 @echo off choice /c:dme defrag,mem,end if errorlevel 3 goto defrag if errorlevel 2 goto mem if errotlevel 1 goto end
你搞錯了吧..... 是這樣才對吧: @echo off choice /c:dme defrag,mem,end if errorlevel 3 goto end if errorlevel 2 goto mem if errotlevel 1 goto defrag
呵呵!我也没在意[em09];

[此贴子已经被作者于2003-8-16 17:11:34编辑过]


作者: xiaojun     时间: 2003-8-16 00:00
请问下: 这里的 if errorlevel 3 goto end ; 是指命令的什么地方执行错误就end呢?

作者: zl7322     时间: 2003-8-16 00:00
如果选择3就执行end

作者: hotdog     时间: 2003-8-16 00:00
我明白了 谢谢

作者: xiaojun     时间: 2003-8-16 00:00
以下是引用zl7322在2003-8-16 22:42:11的发言: 如果选择3就执行end
这个3在哪儿选择? 批处理它不是依次执行的吗?

作者: hotdog     时间: 2003-8-17 00:00
e

作者: 死性不改     时间: 2004-6-24 00:00
正在找这个!

作者: v70wl     时间: 2004-6-24 00:00
choice命令是什么意思

作者: 槛之外     时间: 2004-6-25 00:00
CHOICE:选择命令。这是一个DOS外部命令,但它主要用在批文件中。 CHOICE命令执行后将提示可选择的项目,这时通过一个按键来选则。 用法:CHOICE:[/C[:]按键表] [/N] [/S] [/T[:]选择值,秒数] [显示文本] 其中,/C表示可选则的按键,/N表示不要显示提示信息,/S表示大小写字符敏感方式,/T表示若在批定的时间内没有选则的话,自动执行/C中定义的某个选择值。显示文本是CHOICE命令执行时的提示信息。选择结果将用ERRORLEVEL值来表示。 IF [NOT] ERRORLEVEL 错误返回代号 命令 [命令参数] 意义:如果错误返回代号[不]大于或等于指定的代号将执行某个命令。 其中,ERRORLEVEL表示错误返回代号,很有用。对于很多DOS命令,由于执行的结果不同(如执行成功,执行失败,或被用户中断等),这些命令会返回不同的代号,以表示不同的结果。IF ERRORLEVEL命令就根据这个不同结果而产生的不同代号来执行不同的命令,通常用在某条命令之后。如IF ERRORLEVEL 1 ECHO OK!表示如果当前的错误返回代号大于或等于1时将在屏幕上显示“OK!”的字样

作者: tasmzz     时间: 2009-4-4 00:41
给你一段代码,你自己试试吧! choice /c:yn /t:n,5 yes, no,

作者: SinLow     时间: 2009-9-17 03:31
但是windows XP 没有这个功能了! choice 只在:MS-DOS 6.0+,Windows 95,Windows 98,Windows Vista,Windows 7而已!!! windows XP 是用set, 给你一段代码,你自己试试吧! !!!! 自己了解吧!!! @ECHO off cls :start ECHO. ECHO 1. Print Hello ECHO 2. Print Bye ECHO 3. Print Test set choice= set /p choice=Type the number to print text. if not '%choice%'=='' set choice=%choice:~0,1% if '%choice%'=='1' goto hello if '%choice%'=='2' goto bye if '%choice%'=='3' goto test ECHO "%choice%" is not valid please try again ECHO. goto start :hello ECHO HELLO goto end :bye ECHO BYE goto end :test ECHO TEST goto end :end