2009-10-25 17 views
0

我写了下面的代码选择命令没有不同

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

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

谢谢!

+0

您的意思是:%errorlevel%?,也请编辑您的文章,包括代码格式,以便我们可以更好地阅读它 – 2009-10-25 01:56:29

+0

乔诺,我试过第一次它只是做了以上的事情!这看起来更好,我很抱歉: 选择/ m“是否要添加其他配置文件” 如果errorlevel 1 set/p profile_name1 =输入上述配置文件名称之一: 和NO我不是指%errorlevel% – thegreyspot 2009-10-25 03:28:44

回答

2

您需要为每个结果提供说明。 例如: -

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)errorlevels。

+1

谢谢先生,你救了我:) – thegreyspot 2009-10-25 03:44:28

0

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

另外: IF ERRORLEVEL返回TRUE如果返回代码是等于或更高比指定的错误级别。请检查每一个可能的返回值(在你的情况,既肯定又否定)

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

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

+0

错误,根据选择的结果/?: /M文本指定要在 之前显示的消息提示。如果未指定,则实用程序 仅显示提示。 – 2009-10-25 02:08:38

+0

我认为你错了。我能找到的唯一记录的开关是/ C,/ N/S /&/ T - 您有参考吗?我想知道。 – 2009-10-25 02:38:30

+0

我有一个基本的Windows XP安装 - 我甚至没有在我的机器上选择,所以我只有在线文档去,尽管如此,但真正的问题是无论如何错误级别的线。 – 2009-10-25 02:53:23