Показать полную графическую версию : Сравнение чисел
AlekseyB.
01-09-2014, 10:46
Добрый день!
Подскажите пожалуйста, не могу разобраться с логикой сравнения чисел в батниках. Вот пример
@echo off
set %a=1
if %a equ 1 echo ravno
if %a neq 1 echo ne ravno
echo !a!
По идее, если один равно одному, то должен писать ravno, если один не равен одному, то должен писать ne ravno, но в таком виде пишет ne ravno, а почему не могу понять.
Заранее спасибо.
@echo off
set a=1
if %a% equ 1 echo ravno
if %a% neq 1 echo ne ravno
echo %a%
pause>nul
exit /b
AlekseyB.
01-09-2014, 12:40
2 Georgio
так тоже не работает, но я сделал вот как :
set a=1
set b=1
if %a% equ %b% echo ravno
вот в таком виде нормально отрабатывает
я сделал вот как :
set a=1
set b=1
if %a% equ %b% echo ravno
вот в таком виде нормально отрабатывает »
Гениально!
2 Georgio
так тоже не работает, »
Не верю:
E:\Песочница\0396>type 0001.cmd
@echo off
set a=1
if %a% equ 1 echo ravno
if %a% neq 1 echo ne ravno
echo %a%
exit /b
E:\Песочница\0396>0001.cmd
ravno
1
Именно с числами лучше вообще «set /a» пользовать.
megaloman
02-09-2014, 19:18
Мне не удалось повторить Ваше неравно. Могу предположить, что за 1 в set есть пробелы. Но и в этом случае - у меня отработало правильно. Попробуйте так:
@echo off
set "a=1"
if %a% equ 1 echo ravno
if %a% neq 1 echo ne ravno
echo %a%
kiripanda
02-09-2014, 21:37
set /a a=1
AlekseyB.
03-09-2014, 13:16
видимо я неправильно переменные указывал
если писать
if %%a equ 1 echo ravno
то в таком виде не работает set a=1, "set a=1", set /a a=1 (пишет ne ravno когда сравниваешь 1 и 1)
а если писать
if %a% equ 1 echo ravno - то подходят любые из вышеописанных способов
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.