8.8.11. Команды реконфигурирования системы Команда SET
Назначение: установка значений
глобальных переменных в окружении NDOS и отображение
окружения.
Синтаксис:
SET [/P] [/R file ...] [stringl[=][string2]]
Комментарии. По сравнению с одноименной DOS-командой команда SET обладает следующими
дополнительными возможностями:
1) когда в командной
строке задано только имя string 1 (без последующего символа =), то отображается значение данной
глобальной переменной;
2) переключатель /Р обеспечивает постраничное отображение окружения;
3) переключатель /R служит для
загрузки фрагментов окружения из заданных вслед за ним файлов. Файлы с
окружением могут содержать строки-комментарии, которые должны начинаться с
двоеточия.
Замечания:
— символ = между strtngl и string2 может заменяться пробелом;
― файл с окружением
можно создать текстовым редактором или путем перенаправления стандартного
вывода команды SET без переключателей и аргументов;
― загрузка окружения из файла выполняется
гораздо быстрее, чем формирование окружения последовательностью команд SET в командном файле;
— для удаления глобальных
переменных из окружения лучше воспользоваться командой UNSET.
Команда ESET
Назначение: редактирование
значений глобальных переменных и определений синонимов.
Синтаксис:
ESET string ...
Комментарии. Аргументы string задают имена подлежащих редактированию глобальных переменных и/или синонимы. После выдачи команды на экране появляется
строка, найденная по первому аргументу (значение глобальной переменной или
определение синонима). Эту строку Вы можете обновить средствами редактирования
командной строки (см. п. 8.8.5). После нажатия клавиши Enter начинается
обработка второго аргумента и т.д.
Замечание: коллизии имен
глобальных переменных и синонимов разрешаются в пользу первых. Поэтому Вы не
сможете отредактировать определение синонима, если имеется одноименная с ним
глобальная переменная.
Команда UNSET
Назначение: удаление глобальных
переменных из окружения.
Синтаксис:
UNSET strihg ...
или
UNSET *
Комментарии. Команда UNSET в первой форме
удаляет из окружения NDOS глобальные переменные, имена которых заданы
в качестве аргументов. Вторая форма команды обеспечивает очистку всего
окружения.
Замечание: вторую форму
команды применяйте с большой осторожностью, так как многие программы, в том
числе NDOS, используют значения глобальных переменных.
Команда SETDOS
Назначение: установка и отображение значений системных переменных, конфигурирующих
NDOS.
Синтаксис:
SETDOS [/Аа] [/Сс] [/Eg] [/Ff] [/Нh] [/I{ + | –}string]
[/Ll] [/Mm] [/Nn] [Rr] [/Ssl:s2] [Uu] [/Vv]
Комментарии. Данная команда
позволяет осуществить настройку NDOS в зависимости от
потребностей пользователя. Обычно она помещается в файл автозапуска.
Если ни один из переключателей в командной строке не задан, то
отображаются текущие установки. В противном случае текущие установки заменяются
специфицированными.
Вслед за однобуквенными переключателями указываются символы или числа,
обеспечивающие выбор требуемого варианта из нескольких альтернативных
возможностей. Все переключатели приводят к установке значений соответствующих системных переменных, доступных на уровне
пользовательского интерфейса только в команде SETDOS.
Теперь рассмотрим все допустимые в командной строке переключатели.
Переключатель /Аa (соответствует
переменной ANSI) определяет, будет
ли NDOS использовать Escape-последовательности при очистке экрана.
Применять такие последовательности можно только тогда, когда к системе
подключен драйвер ANSI.SYS. Обычно NDOS сам выясняет,
подключен ли этот драйвер, и тогда /Аa не требуется.
Однако, если Вы используете нестандартный ANSI-драйвер, то
переключатель /А необходим. Допустимы следующие
значения а:
0 —
предоставить возможность NDOS"y самому определить,
подключен ли ANSI-драйвер (принимается
по умолчанию);
1 — положить, что ANSI-драйвер подключен;
2 — положить, что ANSI-драйвер не подключен.
Переключатель /Сс
(переменная COMPAUND) задает символ, который будет использоваться для разделения команд в
командной строке. По умолчанию принимается Л. В качестве с нельзя
использовать символы перенаправления ввода-вывода (|,< и
>), а также «чистые» пробелы.
Переключатель /Eg (переменная ESCAPE) определяет символ, который будет отменять
нормальную интерпретацию следующего символа, заменяя ее другой. В частности,
такое перекодирование позволяет без труда задать Escape-последовательности
в команде ECHO при помощи символа е. По умолчанию в
качестве g принимается символ CAN, отображаемый на
экране как стрелка вверх и набираемый на клавиатуре путем нажатия комбинации
клавиш Ctrl-X. Недопустимыми для g являются те же символы, что и в предыдущем переключателе.
Переключатель /Ff (переменная FULLNAMES) задает возможность сокращения спецификаций файлов. Если f=0, то такая возможность допускается
(это значение принимается по умолчанию). Когда f= 1, то требуются полные имена.
Переключатель /Нh (переменная HISTORY) устанавливает минимальную длину командной
строки, которая будет запоминаться в стеке истории ввода команд. Если указать
число 256, то стек отключится. Если специфицировать 0 (принимается по
умолчанию), то запоминаться будут все командные строки.
Переключатель /I{+|— }string (переменная INTERNAL) запрещает (—) или разрешает (+)
использование внутренней команды NDOS, имя которой
задано в качестве string. По умолчанию все
внутренние команды NDOS разрешены. Чтобы повторно разрешить
использование команды после наложения запрета, выдайте SETDOS снова, указав +.
Отмена опасных команд увеличит «запас прочности» системы при работе
неквалифицированных пользователей.
Переключатель /L1 (переменная LINE) управляет режимом
считывания командной строки с клавиатуры. Если l = 0, то используется посимвольный ввод. Этот
режим устанавливается по умолчанию. Чтобы указать NDOS'y на необходимость
ввода командной строки целиком, следует в качестве l задать 1. Такой режим используется в КП DOS. Для NDOS он исключает
возможность редактирования командной строки, фиксации командных строк в стеке
истории ввода команд и подстановки имен файлов вместо шаблона. Поэтому его
целесообразно использовать только для тех программ, которые иначе не работают,
определив синоним вида
SETDOS /L1^имя программы %&*SETDOS /L0
Переключатель /Mm (переменная MODE) устанавливает
первоначальный режим редактирования командной строки. Когда т = 0 (принимается по умолчанию), редактирование
командной строки начинается в режиме замены. Для того чтобы редактирование
командной строки начиналось в режиме вставки, задайте 1.
Переключатель /Nn (переменная NOCLOBER) управляет перенаправлением
стандартного вывода по умолчанию (n=0) использование символа > приводит к
уничтожению существующего файла, а применение символов > > для
несуществующего файла обеспечивает его создание. Если задать 1, то при
перенаправлении по символу > существующий файл не уничтожается и операция не
выполняется, а в случае использования символов > > целевой файл должен
существовать.
Переключатель /Rr (переменная ROWS) задает посредством r число строк экрана для использования
внутренними командами NDOS при отображении информации. Обычно он не
нужен, так как возможности дисплея распознаются автоматически. Однако если у
Вас нестандартный дисплей, то данный переключатель может потребоваться.
Заметим, что г не изменяет число строк, когда NDOS ждет ввода команды
или вводит ее (в этих случаях работает BIOS).
Переключатель /Ssl:s2 (переменная SHAPE) устанавливает
размер курсора, где s1 — начальная, a s2 — последняя строка сканирования. По умолчанию используются последние
две строки знакоместа. NDOS изменяет размер курсора немедленно, что
позволяет «спрятать» его при выполнении командного файла, задав, например, /S32:32 или любую
другую необычную комбинацию. Курсор установленного описанным способом размера
присутствует в основном режиме редактирования командной строки, задаваемом
переключателем /М. В другом же режиме курсор будет иметь максимальный размер.
Переключатель /Uu (переменная UPPER) задает, на каком регистре будут выводиться
имена файлов внутренними командами NDOS. По умолчанию (п=0) для этой цели
используются строчные буквы. Чтобы обеспечить совместимость с КП DOS, укажите 1 и тогда будут применяться прописные буквы.
Переключатель /Vv (переменная VERBOSE) устанавливает начальный режим отображения команд при выполнении
командного файла. Если v=l (принимается по умолчанию), то команды будут
отображаться, если эхо-отображение не отключено. Когда v=0, команды не будут отображаться, если эхо
не включено явно командой ECHO ON.
Замечание: в среде оболочки DOS, в частности, Norton Commander'a, изменить значение
системной переменной не удастся.
Пример:
■ SETDOS /С˜ /М1
Команда PROMPT
Назначение: изменение
приглашения NDOS.
Синтаксис:
PROMPT [string]
Комментарии. Если аргумент не
задан, то для приводов А и В (т.е. НГМД)
устанавливается приглашение $n$g, а для других
приводов (обычно — НЖМД) — $p$g. Вспомним, что в DOS для всех дисководов
по умолчанию принимается приглашение $n$g.
Дополнительно к DOS-команде PROMPT теперь можно
использовать следующие двухсим-вольные и четырехсимвольные комбинации (обратите внимание на то, что
одноименные строчные и прописные буквы в данном контексте различаются):
$с — символ (;
$f — символ );
$s —
символ пробела;
$Хd: —
текущий каталог диска в приводе й прописными буквами,
независимо от того, какой дисковод в
настоящее время является текущим;
$xd: — текущий каталог диска
в приводе й строчными буквами, независимо от того, какой дисковод в
настоящее время является текущим;
$z —
текущий уровень вложенности N005 (для первичной копии — 0, вторичной — 1 и
т.д.).
Если NDOS работает в
резидентном режиме, то указывается 99.
Комбинации $р и $п в отличие от КП DOS обеспечивают вывод
строчными, а не прописными буквами. Для совместимости с КП DOS применяйте $Р и $N.
Замечание: команду PROMPT, для выдачи Escape-последовательности
из командного файла, в среде NDOS использовать нельзя, так как при его интерпретации приглашения на экран
дисплея не посылаются. Поэтому для решения этой
задачи в командных файлах применяйте команду ECHO.
Команда HISTORY
Назначение: отображение,
загрузка и освобождение стека истории ввода команд. Синтаксис:
HISTORY [/F] [/P] [/R file]
Комментарии. Если в командной
строке не задан ни один из переключателей, то просто отображается содержимое стека истории
ввода команд, начиная с его дна. Переключатели интерпретируются следующим
образом:
/F — освободить (очистить) стек;
/Р — отобразить содержимое стека в
постраничном режиме;
/R — загрузить стек из заданного, файла file.
Замечания:
― число командных строк, способных одновременно храниться в
стеке, зависит от их длины, а также от размера стека (аналогичное замечание
справедливо для стека каталогов);
― создать файл с историей можно текстовым редактором или путем
перенаправления стандартного вывода команды HISTORY;
― для запрета записи командных строк в стек, а также для
фильтрации командных строк перед записью в стек используйте команду SETDOS.
Команда ALIAS
Назначение: объявление
синонима, а также загрузка и отображение списка синонимов.
Синтаксис:
ALIAS [/P] [/R file ...] [stringl[ = ][string2]]
Комментарии. Под синонимом (алиасом) понимают имя, которое может использоваться в командной строке в
качестве заменителя последовательности команд. Аппарат синонимов позволяет
пользователю определять свои собственные команды (в общем случае —
макрокоманды) вплоть до полного переопределения командного языка.
Объявленный командой ALIAS синоним имеет определение, которое при использовании синонима в командной строке, возможно,
конкретизируется и затем обязательно подставляется вместо синонима. Этот
процесс называется разименованнем синонима. Разимеиование
синонимов в командной строке производится до тех пор, пока это возможно.
Поэтому в определении синонима допускается использование объектов такого типа.
Единственное ограничение состоит в запрете рекурсии. Иными словами, в
определении синонима, а также во всех синонимах, в нем использованных
непосредственно или косвенно, не допускается задание этого же синонима.
Синонимы можно специфицировать в командной строке вместо команды.
Имеется много общего между аппаратом синонимов и командных файлов.
Отличия же состоят в следующем:
― синонимы интерпретируются NDOS'om гораздо быстрее командных файлов, так как их определения
хранятся в ОЗУ, а командные файлы — на дисках;
― синонимы могут иметь сокращения, а имя командного файла всегда
должно указываться целиком;
― длина синонима ограничивается 80 символами, в то время как
командный файл может иметь максимум 8-символьное имя;
― определение синонима должно размещаться на одной строке и не
может содержать более 255 символов, а командный файл может содержать
последовательность строк;
― в определениях синонимов недопустимы некоторые команды,
разрешенные к использованию в командных файлах;
― использование встроенной глобальной переменной # в определениях
синонимов не допускается.
Аналогично командным файлам в определении синонима можно использовать
до 128 параметров, имеющих имена от %0 до %127, причем вместо параметра %0
подставляется сам синоним, а вместо остальных параметров — позиционно
соответствующие им аргументы, указанные вслед за синонимом. Как и в командных
файлах, в определениях синонимов дополнительно поддерживаются следующие
параметры:
1) параметр %&, вместо которого подставляется вся
последовательность аргументов из обращения к синониму,
2) параметры %п&, вместо каждого из
которых подставляется остаток аргументов из обращения к синониму, начиная с n-го аргумента.
Кроме того, весь стандартный ввод-вывод как
синонима, так и командного файла, при его вызове можно перенаправлять.
Чтобы предотвратить разименование какого-либо
имени в определении синонима, перед этим именем следует указать символ *.
В команде ALIAS аргумент siring 1 обозначает синоним, a string2 — его определение. Когда заданы как string 1, так и string1, выполнение команды
сводится к объявлению нового синонима и его регистрации в среде NDOS. Если при этом
внутри string 1 использован символ *, то синоним будет
допускать сокращения. Так, синоним DISP'LAY можно будет
вызвать через DISP, DISPL, DISPLA и DISPLAY.
Чтобы предотвратить бесконечное разименование
и устранить неоднозначности при объявлении синонима в ответ на приглашение NDOS или в командном
файле, в следующих случаях необходимо заключать его определение в символы ':
1) когда определение включает несколько команд, разделенных символом;
2) когда в определении используются параметры.
В файле же объявлений синонимов (см. ниже) использование символов ',
наоборот, не допускается.
При задании в командной строке только синонима string 1 команда ALIAS отобразит его определение. Если команда ALIAS введена без
переключателей и аргумента, то на экране будут отображены объявления всех синонимов.
В командной строке допустимы следующие переключатели:
/Р —
осуществить постраничную выдачу объявлений синонимов;
/R —
загрузить объявления синонимов из заданных файлов.
Загрузка объявлений синонимов из файла осуществляется гораздо быстрее,
чем путем выполнения последовательности команд ALIAS. Структура файла объявлений синонимов совпадает с
форматом отображения объявлений синонимов командой ALIAS, но допускаются
строки-комментарии, которые должны начинаться с двоеточия.
Замечания:
― если в вызове синонима больше аргументов, чем в определении
синонима, то дополнительные аргументы останутся в командной строке после разименования этого синонима;
― файл объявлений синонимов можно создать текстовым редактором
или путем перенаправления стандартного вывода команды ALIAS;
—удалить синоним можно командой UNALIAS;
—в определении объявляемого синонима допускается использование еще не
объявленных синонимов, так как разименование
осуществляется только при вызове синонимов;
—работа с синонимами в среде оболочки DOS, в частности, Norton Commander'а, не
поддерживается.
Примеры:
■ ALIAS DIR=*DIR /W /O:N — переопределить
команду D1R таким образом,
чтобы по
умолчанию действовали указанные переключатели;
■ ALIAS DISP*LAY*LIST
ALIAS LIST C:\NC\WPVIEW — переименовать NDOS-команду LIST на DISPLAY (сокращение — DISP) и определить имя LIST для вызова текстового визуализатора
оболочки Norton Commander;
■ ALIAS SF C:\NU\SFORMAT — объявить синоним SF для утилиты Safe Format;
■ ALIAS CAL*C='ECHO ОТВЕТОМ ЯВЛЯЕТСЯ %@EVAL[%&]' — определить калькулятор для целочисленных арифметических выражений;
■ ALIAS L='PUSHD C:LEX^
Команда UNALIAS
Назначение: удаление синонимов
из списка синонимов.
Синтаксис:
UNALIAS string ...
или
UNALIAS *
Комментарии. Аргументами string задаются подлежащие удалению синонимы. Если Вы хотите удалить все
синонимы, то укажите *.