Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
25 / 1 / 1
Регистрация: 16.02.2024
Сообщений: 35

Сравнение с числовым значением больше 9999 (IF compare-op operators (EQU, NEQ, LSS, LEQ, GTR, GEQ)

16.02.2024, 18:54. Показов 2426. Ответов 22

Студворк — интернет-сервис помощи студентам
Подскажите, пожалуйста, почему не выполняется корректная проверка условия?
Я где‐то что‐то делаю не так или что‐то не понимаю.

Есть такое условие проверки номера сборки ОС, где номер сборки (т. е. значение переменной %%G) может быть 7601 (NT 6.1) или 9600 (NT 6.3):
Windows Batch file
1
for /f "usebackq tokens=2 delims==" %%G in (`wmic OS get BuildNumber /value`) do (if %%G GEQ 9999 (echo ok) else (echo not ok))
и оно отрабатывает корректно. Вывод будет not ok
Но если значение, с которым сравнивают номер сборки, будет 10000 или больше, то будет некорректное сравнение для, например, сборки 7601. То есть будет выведено ok.
Что здесь происходит?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.02.2024, 18:54
Ответы с готовыми решениями:

Как происходит сравнение с помощью операторов LSS, LEQ, GTR, GEQ ?
Добрый день. Можете логично объяснить, как происходит сравнение с помощью операторов LSS, LEQ, GTR, GEQ А то в интернете просто: LSS -...

Построение выражения с сохраненным числовым значением
Подскажите как в Аксесс сохранить значение для расчетов. Выражение Оборот: Count(*)/(Значение). Соответственно необходимо сохранить ...

Как вывести 3 поля с наиболшим числовым значением
Можете написать хотябы как это зделать просто в Excel.. ну сразу наверно сортировку по убыванию а потом как если значения находятся в...

22
25 / 1 / 1
Регистрация: 16.02.2024
Сообщений: 35
21.02.2024, 18:33  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от FlasherX Посмотреть сообщение
Нет, он переберёт все 6 строк, 5 из которых окажутся пустыми, где set /a отработает вхолостую.
Понял, спасибо.
0
7690 / 2887 / 1110
Регистрация: 06.06.2017
Сообщений: 9,816
21.02.2024, 20:35
Цитата Сообщение от one1 Посмотреть сообщение
онял, спасибо.
Только я понял, что спрашивался не про тот, где так надо делать, а остальные два. В них так происходит. А этот просто фильтрует до одной строки, что логически подразумевает один оборот.
0
25 / 1 / 1
Регистрация: 16.02.2024
Сообщений: 35
21.02.2024, 21:33  [ТС]
FlasherX, да, да.
Про них и спрашивал. И про Ваш тоже. Я покрутил это
Windows Batch file
1
2
For /f %%G In ('"wmic OS get BuildNumber /value"') Do 2>nul Set /A %%G
    if %BuildNumber% GEQ 10000 (echo %BuildNumber%^>=10000) else (echo %BuildNumber%^<10000)
и допетрил, что там крутится цикл.
И что в Вашем и этом
Windows Batch file
1
2
For /f %%G In ('"wmic OS get BuildNumber /value|find "^=""') Do Set /A %%G
    if %BuildNumber% GEQ 10000 (echo %BuildNumber%^>=10000) else (echo %BuildNumber%^<10000)
будет только один проход.
Спасибо ещё раз!

Добавлено через 6 минут
Вот результат
f:\>tst-for.cmd

f:\>setlocal enabledelayedexpansion

f:\>set count=1

f:\>For /F %G In ('"wmic OS get BuildNumber /value"') Do set /a count=!count!+1
& Set /A %G 2>nul

2>nul /a count=!count!+1 & Set /A

2>nul /a count=!count!+1 & Set /A

2>nul /a count=!count!+1 & Set /A BuildNumber=7601

2>nul /a count=!count!+1 & Set /A

2>nul /a count=!count!+1 & Set /A

2>nul /a count=!count!+1 & Set /A

f:\>if 7601 GEQ 10000 (echo 7601>=10000 ) else (echo 7601<10000 )
7601<10000

f:\>echo !count!
7

f:\>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.02.2024, 21:33

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

Динамический фильтр для поля с числовым значением
Доброго времени суток. Есть такая задумка: есть форма типа &quot;Несколько элементов&quot;, на которой присутствует элемент Поле (не со...

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

String.Compare - сравнение строковых величин
Не знаю,как в моем статическом методе &quot;Sravnenie&quot; сравнить строковые величины(ylica, name)...знаю, что с помощью String.Compare только как,...

Сравнение строк с помощью String.Compare
Доброго времени суток. Нужна помощь с String.Compare. В общем, ввожу строку. Разбиваю сплитом на слова. Суть задачи найти одинаковые...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru