Как использовать неравенства в коде cmd

Я делал код, чтобы найти квадратные корни для практики с базовым кодированием cmd. Тем не менее, когда я набираю отрицательное число или несовершенный квадрат, он идет бесконечным циклом. Я знаю, как это исправить, но мне нужно уметь использовать неравенства (меньше чем, больше чем). (х - это число, которое у меня есть, а у - квадратный корень). Таким образом, я могу сказать:

  • если% x% (меньше) 0 (не работает)
  • если% y% (больше чем)% x% (не работает)

или я мог бы создать другую переменную, которая меньше (z)/ больше (n), чем x:

  • если%x% == %z% (не работает)
  • если%x% == %n% (не работает)

Пожалуйста, помогите мне. Я не могу найти ответ.

3 ответа

Вы можете попробовать прочитать документацию для оператора IF - введите HELP IF или же IF /? из командной строки. Примерно на полпути описываются расширения команд, которые поддерживают неравенства, такие как LSS менее чем за.

if 0 lss 1 (echo 0 is less than 1) else (echo 0 is not less than 1)

+1 к ответу @dbenham, вот выдержка из IF документация со всеми операторами сравнения:

Если расширения команд включены, IF изменяется следующим образом:

IF [/I] string1 compare-op string2 command
IF CMDEXTVERSION number command
IF DEFINED variable command

где сравнение может быть одним из:

EQU - equal
NEQ - not equal
LSS - less than
LEQ - less than or equal
GTR - greater than
GEQ - greater than or equal

Ну, в коде это будет выглядеть примерно так

:: this is Regional settings dependant so tweak this according 
:: your current Windows regional settings
for /f "tokens=1-3 delims=,: " %%a in ('echo %time%') do set hhmmsss=%%a%%b%%c

if /i %hhmmsss% LSS 95959 SET hhmmsss=0%hhmmsss%
Другие вопросы по тегам