Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых

Локальные сети персональных компьютеров. Монтаж сети, установка программного обеспечения

© Александр Фролов, Григорий Фролов
Том 4, М.: Диалог-МИФИ, 1993, 287 стр.

[Назад] [Содеожание] [Дальше]

11.1. Команды файла Login Script

В этом разделе мы приведем краткий список команд для файлов System Login Script и User Login Script.

ATTACH

Подключение к дополнительному файл-серверу. Эта команда нужна, если в вашей сети несколько серверов или если вам необходимо подключиться к серверу, который находится в другой сети, подключенной через мост.

attach [имя_сервера[/имя пользователя[;пароль]]]

Пример:

attach netlab/frolov

BREAK

Эта команда позволит вам управлять возможностью прервать выполнение файла Login Script при помощи комбинации клавиш <Ctrl+C> или <Ctrl+Break>.

break on разрешить прерывание выполнения файла Login Script

break off запретить прерывание выполнения файла Login Script

Пример:

break on

COMSPEC

Задает каталог, который будет использован MS-DOS для повторных загрузок командного процессора.

COMSPEC = [путь] command.com

Пример:

comspec=c:command.com

DISPLAY

Отображение содержимого текстового файла на экране.

display [путь/] имя_файла

Пример:

display sys:mail/sysmsg/msg1.txt

DOS BREAK

Эта команда позволяет управлять возможностью прерывания выполнения программы на уровне MS-DOS при помощи комбинации клавиш <Ctrl+Break>.

dos break on разрешить прерывание программы

dos break off запретить прерывание программы

Пример:

dos break on

Примечание: В версии 2.2 эта команда отсутствует.

DOS SET

Установка значения переменной MS-DOS, аналог команды SET в файле autoexec.bat.

[dos] set имя_переменной = "значение"

Пример:

set DMAKE = "f:\\projects\\dmake"

Обратите внимание на повторение символа обратного слеша "\".

DOS VERIFY

Включение/выключение проверки данных, записываемых на локальный диск рабочей станции.

dos verify on включить проверку

dos verify off выключить проверку

Пример:

dos verify on

DRIVE

Определение диска, который будет текущим.

drive [буква имени диска]:

Пример:

drive c:

EXIT

Эта команда используется для завершения выполнения файла Login Script. После завершения она позволяет запустить на выполнение любую программу или команду MS-DOS.

exit "имя_файла"

Пример:

exit nc

FIRE PHASERS

Эта команда с названием, которое можно перевести как "пальнуть из фазера", предназначена не для стрельбы по пользователям или супервизору, а всего лишь для выдачи звукового сигнала заданное количество раз (определяется параметром n).

fire phasers n times

Пример:

fire phasers 4 times

FDISPLAY

Отображение содержимого текстового файла на экране с фильтрацией управляющих символов, предназначенных для принтера или текстового процессора. Символы табуляции также не отображаются.

fdisplay [путь/] имя_файла

Пример:

fdisplay sys:mail/sysmsg/msg1.txt

GOTO

Команда позволяет изменить ход выполнения файла Login Script, передав управление строке с заданной в качестве параметра меткой.

goto [метка]

Пример:

<......................>

goto endfile

<......................>

endfile:

exit

IF

Условный оператор IF превращает ваш Login Script в небольшую программу. С его помощью вы можете проверить то или иное условие и в зависимости от результатов проверки выполнить разные команды. Например, можно проверить принадлежность пользователя к той или иной группе и для каждой группы (или даже для конкретного пользователя) выполнить свою инициализирующую последовательность команд.

IF условия [AND|OR|NOR] условия

THEN команда ELSE BEGIN команда END

В качестве условия в команде IF обычно проверяется равенство или неравенство так называемых переменных идентификации (Identifier Variables). Мы расскажем вам только о самых необходимых переменных. Все эти переменные можно разделить на несколько групп.

Проверка выполнения условий

ERROR_LEVEL Используется для проверки результата выполнения команды. Если команда выполнилась удачно, значение переменной равно "0". В противном случае переменная имеет значение, отличное от "0"
MEMBER OF "имя_группы" Переменная принимает значение TRUE, если текущий пользователь является членом группы с именем "имя_группы"

Текущая дата

DAY Номер дня в месяце, от 01 до 31
DAY_OF_WEEK Название дня недели на английском языке (Monday, Tuesday, и т. д.)
MONTH Номер месяца, от 01 до 12
MONTH_NAME Название месяца на английском языке (January, February и т. д.)
NDAY_OF_WEEK Номер дня недели, от 1 до 7. Нумерация начинается с воскресенья, то есть для воскресенья номер дня недели равен 1
SHORT_YEAR Последние две цифры года, например 92, 93
YEAR Полное обозначение года, например 1994

Текущее время

AM_PM До полудня (am) или после полудня (pm)
GREETING_TIME Утро (morning), день (afternoon) или вечер (evening)
HOUR Час дня или ночи от 1 до 12
HOUR24 Час суток от 00 (полночь) до 24
MINUTE Минуты от 00 до 59
SECOND Секунды от 00 до 59

Сетевой адрес

NETWORK_ADDRESS Сетевой адрес (номер кабельной системы), состоит из восьми шестнадцатеричных цифр
FILE_SERVER Имя файл-сервера

Информация о пользователе

FULL_NAME Полное имя пользователя, как оно задано при помощи утилиты syscon.exe
LOGIN_NAME Имя, под которым пользователь подключился
к серверу
USER_ID Личный идентификатор пользователя на сервере

Информация о рабочей станции

MACHINE Название модели компьютера, для которой создана сетевая оболочка (обычно IBMPC)
OS Название операционной системы, на которой работает оболочка, например MSDOS
OS_VERSION Версия операционной системы, используемой на рабочей станции
P_STATION Сетевой адрес станции, состоит из 12
шестнадцатеричных цифр
SMACHINE Короткое название компьютера, например IBM
STATION Номер соединения для данной рабочей станции

Дополнительно к перечисленным выше переменным можно обращаться и к переменным среды DOS.

Примеры:

Проверка результата выполнения команды

attach netlab/frolov

if "%ERROR_LEVEL"="0" then

map z: = netlab/sys:

Проверка на принадлежность пользователя к определенной группе

if MEMBER_OF "administrators" then

map u: = sys:\system

INCLUDE

Эта команда действует аналогично оператору #include в языке программирования Си - она позволяет включать в файл Login Script содержимое других файлов. Благодаря этому размер файла Login Script можно уменьшить.

include [путь]имя_файла

Пример:

if member of "ADMINISTRATORS" then include

SYS:LOGS\ADMIN.LOG

if member of "SMARTUSERS" then include

SYS:LOGS\SMART.LOG

MACHINE

С помощью этой команды для рабочей станции можно установить так называемое "имя машины". Это имя может потребоваться для работы некоторых программ, например ориентированных на протокол передачи данных по сети NETBIOS (протоколы передачи данных будут рассмотрены подробно в следующем томе "Библиотеки системного программиста").

machine = "имя_машины"

Пример:

machine = "FROLOV"

MAP

Отображение каталогов файл-сервера на локальные диски рабочей станции. Это самая нужная команда в файле Login Script, она позволяет полностью автоматизировать процесс отображения каталогов. Приведем общий формат вызова команды (с некоторыми упрощениями):

map [функция] [диск: = [путь[;,,,]]

Возможны несколько форматов для команды map.

map

Если команда map выдана без параметров, на экране отображается карта текущего отображения каталогов.

map диск:=[путь]каталог

Отображение диска "диск" на сетевой каталог "каталог". В пути для сетевого каталога можно указывать имя сервера и имя тома.

map диск:=[путь]каталог; диск:=[путь]каталог

Одновременное отображение нескольких дисков в одной команде.

map insert диск_поиска:=[путь]каталог

Отображение сетевого каталога на диск. Полученный диск автоматически просматривается при запуске программ, поэтому он называется "диск_поиска". Альтернатива - использование команды PATH в файле autoexec.bat.

map root диск:=[путь]каталог; диск:=диск

Отображение сетевого каталога на корневой каталог локального диска. Требуется для тех программ, которые могут работать только с корневым каталогом. Обычно супервизор не предоставляет пользователям прав для доступа к корневым каталогам диска, поэтому единственный способ получить сетевой корневой каталог - использовать приведенную выше команду.

map display on

Включение режима вывода на экран во время выполнения файла Login Script результатов отображения каталогов. Этот режим используется по умолчанию.

map display off

Выключение вывода на экран результатов отображения.

map errors on

Разрешение вывода на экран сообщений об ошибках при выполнении команд отображения каталогов. Используется по умолчанию.

map errors off

Запрещение вывода сообщений об ошибках при выполнении отображения каталогов.

Примеры:

map y:=sys:system

map u:=netlab/sys:system

map t:=sysprg/sys:system

PAUSE или WAIT

При выполнении этой команды на экран выдается сообщение

Strike a key when ready...

после чего система ожидает, пока не будет нажата любая клавиша. Эту команду удобно использовать в файле Login Script после команд выдачи сообщений. Прочитав сообщение, пользователь нажмет клавишу, после чего выполнение файла Login Script будет продолжено.

Пример:

display sys:mail/sysmsg/msg1.txt

pause

REMARK, * или ;

Команда нужна для использования части строк файла Login Script в качестве комментария. Вы можете указывать либо полное имя команды, либо сокращения: rem, "*" или ";".

Пример:

* Отображение тома SYS

map x:=sys:

; Отображение тома VOLUME1

map y:=volume1:

rem Отображение тома VOLUME2

map z:=volume2:

SHIFT

При вводе команды login вы можете указать до 10 параметров, к которым можно обращаться при выполнении файла Login Script как к переменным. Например: "%0", "%1" и т. д.

Команда shift сдвигает параметры вправо на количество позиций, заданного в качестве параметра команде shift.

Пример:

Пусть пользователь при входе в сеть запустил login со следующими
параметрами:

login netlab/frolov standard service

При этом параметры получат следующие значения (которые вы сможете использовать, например, в команде IF):

%0=netlab

%1=frolov

%2=standard

%3=service

Если теперь выдать команду "shift 1", то например, значением переменной "%2" станет "service".

Команда shift может быть использована для анализа передаваемых программе login параметров. При этом можно в файле Login Script организовать цикл и в цикле, постепенно сдвигая параметры вправо, по очереди анализировать их.

WRITE

Вывод сообщения на экран. Сообщение может состоять из одной строки в двойных кавычках либо может быть составлено из нескольких строк и содержимого переменных идентификации. Для сцепления строк можно использовать символ ";".

write "текст"

Пример:

write "Добро пожаловать, уважаемый "; LOGIN_NAME

#

Запуск на выполнение программы MS-DOS или пакетного файла.

# [путь]имя_программы [параметры]

Пример:

#capture NoB q=hetlabpq s=netlab

[Назад] [Содеожание] [Дальше]