Windows批处理 - 手动设置ERRORLEVEL后CHOICE无效

时间:2013-12-01 00:32:01

标签: windows batch-file command-line cmd

我在一个更大的批处理文件中遇到了一个问题,并将其缩小到一个非常特殊的问题。如果我手动设置错误级别如下:set errorlevel=5,则“choice”命令无法设置或覆盖我的错误级别。我怎样才能解决这个问题呢?

我制作了一个批处理文件来测试它。这是:

@echo off
set errorlevel=5
choice /c 123
echo %errorlevel%
pause

输出,如果你要按2:

[1,2,3]?2
5
Press any key to continue . . .

3 个答案:

答案 0 :(得分:2)

我曾经使用一个简单的子程序将errorlevel设置为任何值:

@echo off

call :errorlevel=5
echo %errorlevel%
goto :EOF

:errorlevel
exit /B %1

答案 1 :(得分:1)

使用cmd /c exit /b 5代替set errorlevel=5

像这样:

@echo off
cmd /c exit /b 5
choice /c 123
echo %errorlevel%
pause

答案 2 :(得分:1)

批处理文件编写器可以使用系统环境变量,但这是一个非常糟糕的主意 PATH TEMP WINDIR USERNAME USERPROFILE ERRORLEVEL TIME DATE是您应该避免使用的一些变量名称。在cmd提示符下键入SET以查看正在使用的常用内容,但不会全部显示。

选择正常运行,其他工具也无法设置错误级别。