Другие языки программирования и технологии

BAT/CMD Подскажите, какой символ или команду использовать? С командой else у меня ни чего не выходит...

Допустим, у меня имеется переменная %per%, ей я потом придаю числовое значение.
Так же имеются три варианта ответа, к какой группе (1-10, 11-20, 21-30) отнести введенное число:

1) if /i %per% lss(меньше) 11 команда

2) if /i %per% gtr(больше) 10 lss 21 команда

3) if /i %per% gtr 20 lss 31 команда

В зависимости от принадл. числа к гр. вып. соотв. команда. Так вот, как мне во 2 и 3 случае "связать" gtr и lss так, чтоб получилось
типа больше 10 НО меньше 21.
не понял, а чем неустраивает
if (ss gtr 10 and ss lss 20) @echo %ss%
ЗЫ Это к вапросу "зачем математика программисту" элементарная булева алгебра здесь используется всегда и везде
ЗЗЫ А ELSE в If таки есть. см. if /?
Zhassulan Toleuov
Zhassulan Toleuov
82 098
Лучший ответ
В batникак давно есть else
Пруф:
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/if.mspx?mfr=true

Во вторых составного условия в cmd на сколько я помню нет, так что
if (ss gtr 1 and ss lss 21) echo ...работать не будет

В третьих я бы сделал так:
Т. к. у Вас группы по 10 - почему не воспользоваться делением?
set /a groupN=(%per%-1)/10+1 даёт номер десятка + 1, с учётом, что конец десятка принадлежит предыдущей группе.
if /i %groupN% gtr 3 set groupN=0 и группа 0 служит чтобы мы не зашли за рамки в данном случае 3ьего десятка.

@echo off
cls
set per=3
set /a groupN=(%per%-1)/10+1
if /i %groupN% gtr 3 set groupN=0
goto group%groupN%

:group1
echo Блок команд1-10
exit

:group2
echo Блок команд11-20
exit

:group3
echo Блок команд21-30
exit

:group0
echo per=%per% Выход за пределы диапазона

---
Протокол:
per=1 Блок команд1-10
per=10 Блок команд1-10
per=11 Блок команд11-20
per=21 Блок команд21-30
per=25 Блок команд21-30
per=31 Выход за пределы диапазона
Фаннур Сафин
Фаннур Сафин
84 764
А в батниках нет елсе.
Если вам нужен елсе - эмулируйте его через лишние goto. К примеру
if (условие) then write 1
else write 2
будет так
if (условие) goto u_1
write 2
goto u_end
:u_1
write 1
:u_end
Сергей Соколов
Сергей Соколов
34 701