batch-file - 批处理(选择):ERRORLEVEL 似乎不起作用
问题描述
我已经编写了一个批处理文件,几个小时以来,我一直在尝试解决选择命令会导致程序崩溃的问题。崩溃似乎发生在第一个“if ERRORLEVEL”命令期间。
choice /c EDCBA /n
if "%ERRORLEVEL%"=="5" (
cls
echo From which file should the first line be extracted?
set /p ffe="> "
echo set /p %gclvar%="<%ffe%">>codes/%current%.bati
goto createblock
)
if "%ERRORLEVEL%"=="4" (
echo set /p %gclvar%="> ">>codes/%current%.bati
goto createblock
)
if "%ERRORLEVEL%"=="3" (
cls
echo Type in the operation.
set /p op="> "
echo set /a %gclvar%=%op%>>codes/%current%.bati
goto createblock
)
if "%ERRORLEVEL%"=="2" (
cls
echo Type in the variable. (without "%")
set /p var="> "
echo set %gclvar%=%%var%%>>codes/%current%.bati
goto createblock
)
if "%ERRORLEVEL%"=="1" goto createblock
变量 %gclarvar% 由用户设置(不使用空格)。变量 %current% 是用“%random%(block)”创建的。(:createblock 存在)
解决方案
您将 ERRORLEVEL 视为字符串;这是一个数字。
而不是进行IF "%ERRORLEVEL%" == "5" ...
字符串比较的 etc.,使用
IF ERRORLEVEL 5 ...
它使用一种自多年前就已经存在的机制来测试 ERRORLEVEL,而我不愿承认知道,
或者
IF %ERRORLEVEL% EQU 5 ...
哪些测试
推荐阅读
- html - 如何从 html 获取表单数据值并显示在其他 html 页面上
- spring - 绝对排序不起作用 - 找到了多个名为 [spring_web] 的片段。这对于相对排序是不合法的
- plsql - SQL 过程问题
- regex - 适合在 yaml 文件中查找键值的正则表达式
- mysql - 对于表a中的每条记录,返回表b中日期最接近但大于now()的记录
- python - 用单列中的值替换所有列值 - Pandas
- javascript - 从按钮到文本输入的 HTML 转换
- php - 没有选择数据库,我不知道我的代码有什么问题,我已经改变了多种方式,但仍然得到相同的结果。“没有数据库”
- python - 从文本文件中读取逗号分隔值并使用 python 创建 geoJson 文件
- css - 使用元素ui vue js更改颜色标题对话框