AMIGA # 1
Если одна из строк длиннее другой, то при прочих равных условиях считается, что она \"больше\". Параметр-переключатель VAL, будучи использованным перед EQ, GT или GE, вызовет сравнение строк в два этапа: вначале строки будут преобразованы в числа, а затем будет произведено сравнение чисел между собой. Без использования VAL, например, оказалось бы, что 10 больше, чем 012, поскольку сравнение строк всегда происходит слева направо до первого несовпадающего символа, a ASCII-значение символа \"1\" больше, чем \"0\". VAL успешно корректирует эту ситуацию для чисел. Ключевое слово EXISTS с последующим маршрутом позволяет предпринять нужные действия в зависимости от того, в состоянии ли система обнаружить этот маршрут. Пример:
IF EXISTS С:
echo \"В системе есть логическое устройство С:\"
ELSE
echo \"Логическое устройство С: не обнаружено!\"
ENDIF Если после EXISTS вы специфицируете имя диска (тома) или физическое имя устройства (например, DF1:), как по отдельности, так и в составе некоторого полного маршрута, а такое устройство (том) на момент исполнения IF EXISTS отсутствует в вашей системе, то выскочит риквестер типа \"Вставьте диск в устройство…\", что, вообще говоря, обычно нежелательно при исполнении командных файлов. Поэтому для варианта поиска тома или физического устройства лучше подойдет следующий пример:
assign >NIL: EXISTS DF1:
IF WARN
echo \"Дисковод DF1: отсутствует в вашей системе\"
ELSE
echo \"Дисковод DF1: обнаружен\"
ENDIF В этом примере используется тот факт, что в случае неудачного поиска требуемого тома (устройства) команда ASSIGN EXISTS не выводит никаких риквестеров. Правда, придётся умерить излишнюю разговорчивость самой команды ASSIGN, направив выдаваемые ей сообщения вместо текущего Shell-окна в устройство \"NIL:\" (т.е. в никуда). Мы используем только результат работы команды ASSIGN — тот уровень ошибки, который она после себя оставила. INFO DEVICE Команда показывает общую информацию о различных устройствах, имеющихся в нашей системе.
|