批处理不会检测负变量

Batch won't detect negative variables

所以,我已经对此进行了一段时间的修改,但我不明白为什么它不起作用。

如果负50小于10,则显示"Good Job"。但是,它一直输出"fail"。我用几个不同的批处理脚本(即没有 goto 和没有“()”)来查看它是否是我编程的方式,但显然不是。我在这里完全不知所措。

@echo off
set var=-50
if var LSS 10 (
    goto complete
    )
echo Fail.
pause > nul
:complete
echo Good job.
pause > nul

Var 需要用 % 符号。

set var=-50
if %var% LSS 10 Echo Hi 

这似乎如您所愿。

@echo off
set var= -50
if /I %var% LSS 10 (
goto complete
)
echo Fail.
pause > nul
:complete
echo Good job.
pause > nul

Link: http://ss64.com/nt/if.html

您也可以使用 if [Variable] LSS 10