ЕСЛИ "71" GTR "7000" дает истину - PullRequest
0 голосов
/ 30 октября 2018

Согласно моему коду, если %~1 больше 7000, перейдите к ExceedError

IF "%~1" GTR "7000" GOTO ExceedError

Содержимое ExceedError:

ECHO Value exceeded the maximum value. See help file.
EXIT /B

Но это случилось:

...modules>If "71" GTR "7000" GOTO ExceedError

...modules>Echo Value exceeded the maximum value. See help file.
Value exceeded the maximum value. See help file.

...modules>exit /B

Что случилось? Что-то не так?

1 Ответ

0 голосов
/ 30 октября 2018

вы заключили аргументы в двойные кавычки, и это вызывает сравнение строк. Для сравнения чисел попробуйте без кавычек:

IF %~1 GTR 7000 GOTO ExceedError

Если вы хотите предотвратить ошибки, вы можете добавить еще одну строку:

set /a "_number=%~1" >nul 2>&1 || set "_number=0"
IF %_number% GTR 7000 GOTO ExceedError

В случае неправильного ввода вы сравните значения с 0 в качестве значения по умолчанию. Вы можете изменить его, если вам нужно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...