我在一个更大的批处理文件中遇到了一个问题,并将其缩小到一个非常特殊的问题。如果我手动设置错误级别如下: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 . . .
答案 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
以查看正在使用的常用内容,但不会全部显示。
选择正常运行,其他工具也无法设置错误级别。