Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Сравнение чисел (http://forum.oszone.net/showthread.php?t=287318)

AlekseyB. 01-09-2014 10:46 2396891

Сравнение чисел
 
Добрый день!
Подскажите пожалуйста, не могу разобраться с логикой сравнения чисел в батниках. Вот пример

@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 2396939

Код:

@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 2396948

2 Georgio
так тоже не работает, но я сделал вот как :

set a=1
set b=1
if %a% equ %b% echo ravno

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

Georgio 01-09-2014 12:49 2396956

Цитата:

Цитата AlekseyB.
я сделал вот как :
set a=1
set b=1
if %a% equ %b% echo ravno
вот в таком виде нормально отрабатывает »

Гениально!

Iska 01-09-2014 20:37 2397125

Цитата:

Цитата AlekseyB.
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 2397502

Мне не удалось повторить Ваше неравно. Могу предположить, что за 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 2397570

Код:

set /a a=1

AlekseyB. 03-09-2014 13:16 2397803

видимо я неправильно переменные указывал
если писать
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 - то подходят любые из вышеописанных способов


Время: 22:49.

Время: 22:49.
© OSzone.net 2001-