Windows 批处理 GEQ 未按预期工作

Windows Batch GEQ not working as expected

我正在尝试在 Windows 批处理脚本中使用 GEQ(大于或等于)。 我有一个 IF 子句测试

if %count% GEQ 10

每次通过都数 %count% 个。我曾预计十次通过后条件为真。但是,运行两次后,条件为真,而%count%为2.

如果我将 GEQ 替换为 ==,它会按预期工作,显示最多 10 次并退出。我真的不明白我的思维错误在哪里,在这一点上。请给我提个醒。

代码:

@ECHO OFF
SETLOCAL
CLS

ECHO.
SET /a max = 10
ECHO This should run %max% times:

:REPEAT
set /a count = "%count%"+1
ECHO Test %count%

IF "%count%" GEQ "%max%" (
    GOTO :QUIT
) ELSE (
    GOTO :REPEAT
)

:QUIT
ECHO.
ECHO Done.
IF "%count%" GEQ "%max%" (

通过使用引号,您强制 if 比较字符串,而不是数字,因此 2 大于 19514

改为:

IF %count% GEQ %max% (