Войти

Показать полную графическую версию : Сравнение чисел


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, а почему не могу понять.
Заранее спасибо.

Georgio
01-09-2014, 12:20
@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

вот в таком виде нормально отрабатывает

Georgio
01-09-2014, 12:49
я сделал вот как :
set a=1
set b=1
if %a% equ %b% echo ravno
вот в таком виде нормально отрабатывает »

Гениально!

Iska
01-09-2014, 20:37
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