CMD处理第二个IF条件时为何提示NEQ不符合预期?
批处理错误"NEQ was unexpected at this time."原因及解决办法
错误原因
你遇到的错误是因为批处理IF ERRORLEVEL的语法使用完全错误:
IF ERRORLEVEL的标准用法是直接跟数字,用于判断错误级别是否大于等于该数字,不能搭配==或NEQ这类比较运算符。- 你的代码中
IF ERRORLEVEL ==5和IF ERRORLEVEL NEQ 5都不符合批处理语法规则,导致命令解析失败,抛出"NEQ was unexpected at this time."错误。
正确写法
写法一:利用IF ERRORLEVEL原生逻辑
IF ERRORLEVEL N表示错误级别≥N,结合choice返回值1-5的特性,可简化为:
%SystemRoot%\System32\choice.exe /C:12345 /M "1M(1)1F(2)2M(3)2N(4)3rd(5)" IF ERRORLEVEL 5 goto n3 echo incorrect try again :n3
逻辑:按下5时错误级别≥5,跳转至:n3;按下其他键时错误级别<5,执行echo语句。
写法二:用%ERRORLEVEL%变量做精确比较
如果需要精确判断错误级别,可使用%ERRORLEVEL%变量配合批处理支持的比较运算符(EQU=等于,NEQ=不等于):
%SystemRoot%\System32\choice.exe /C:12345 /M "1M(1)1F(2)2M(3)2N(4)3rd(5)" IF %ERRORLEVEL% EQU 5 goto n3 IF %ERRORLEVEL% NEQ 5 echo incorrect try again :n3
内容的提问来源于stack exchange,提问作者user17135778
相关产品推荐
相关产品推荐

