选择命令没有区别

时间:2009-10-25 01:50:36

标签: batch-file

我写了以下代码

choice /m "Do you want to add another profile" 
if errorlevel 1 set /p profile_name1=Enter one of the above profile names:

然而它始终运行“输入上述配置文件名称之一:”即使我没有按下。我做错了什么?

谢谢!

2 个答案:

答案 0 :(得分:2)

您需要为每个结果提供说明。 E.g:

choice /m "Do you want to add another profile"
if errorlevel 2 goto :doOtherStuff
if errorlevel 1 set /p profile_name1=Enter one of the above profile names: 
:doOtherStuff

另请注意,订单很重要,您必须按降序列出错误级别(2然后是1)。

答案 1 :(得分:0)

首先,/ m不是您可以传递给选择的有效参数。尝试删除它,这可能是令人困惑的选择。

此外: 如果返回代码等于或更高,则IF ERRORLEVEL返回TRUE,而不是指定的errorlevel。尝试检查每个可能的返回值(在您的情况下,是和否)

IF ERRORLEVEL 2 SET ANS="No"
IF ERRORLEVEL 1 SET ANS="Yes"

并在批处理文件的其余部分使用ANSwer的值。