Мюллер Джон Поль
Шрифт:
Рекомендация
В Windows XP имеется набор сценариев по умолчанию в папке \WINDOWS\ SYSTEM32\RAS. Вы можете использовать данные сценарии в качестве шаблонов для создания собственных сценариев. Способ их построения мы обсудим в следующих разделах.
Запуск сценария
Сценарий создается с помощью какого-нибудь текстового редактора, например Блокнота. В сценарии нельзя использовать необычный шрифт или другие дополнительные элементы, обычные для текстовых процессоров. Файлы сценариев должны иметь расширение .scp, чтобы их было легко найти. Если вы хотите, чтобы сценарий появился в списке, изображенном на рис. 18.5, разместите его в папке \WINDOWS\SYSTEM32\RAS.
Если вы занимались программированием на языке сценариев, допустим на Visual Basic, приведенные здесь термины будут вам знакомы. Для сценариев используются процедуры. Весь код помещается между двумя операторами: proc и endproc. Каждый сценарий включает основную процедуру, комментарии, сообщающие другим пользователям (или напоминающие вам), как он работает. Далее указаны первые строки текста, добавляемого в файл сценария:
; Комментарий к сценарию.
proc main
endprocТеперь, когда у вас есть основная процедура, Windows XP распознает этот файл в качестве сценария. Тем не менее система ничего не сделает, пока вы не введете некоторый код. Переменные Вы должны объявить все используемые переменные в начале процедуры. В объявлении переменной всегда указывается ее тип и имя. Можно также присвоить переменной некоторое значение. Удаленный доступ не позволяет объявлять переменные вне процедуры. Имена переменных всегда начинаются с буквы или символа подчеркивания; зарезервированные имена нельзя применять. Далее указаны типы переменных, которые допустимы в сценарии:
• Integer – целое положительное или отрицательное число;
• String – символьная строка, например «Hello World». Может содержать цифры;
• Boolean – логические переменные со значением true (истина) или false (ложь).Приведу пример сценария с переменными:
; Сценарий, иллюстрирующий некоторые переменные.
proc main
; Переменная целого типа.
integer iValue
; Переменная строкового типа с заданным значением.
string sMyString = «Hello»
Переменная логического типа.
boolean lAmICorrect
endprocТакже существуют заданные переменные, используемые для сценариев удаленного доступа. В табл. 18.1 приведены такие предопределенные переменные и их описание. Таблица 18.1. Предопределенные переменные сценариев
Специальные обозначения в символьных строках Попытка создать сценарий, который будет выполнять все, что вам нужно, может привести к разочарованию, если язык сценария не предусматривает некоторых дополнительных свойств. Например, как вы пошлете на сервер управляющий символ? На многие серверы требуется послать символ Ctrl+Break, прежде чем они ответят. Для этого применяется символ перевода каретки (carret). Поместите символ ^ слева от одной из букв латинского алфавита. Например, команде Ctrl+Break соответствует ^C.
Рекомендация
Всегда используйте кавычки для объявления символьной строки в сценарии, даже если эта строка включает один управляющий символ; в противном случае обработчик сценария (script engine) проинформирует об ошибке.
Также существуют текстовые замены для управляющих символов. Например, <cr> обозначает возврат каретки, а <if> – перевод строки. Если вы будете использовать <cr> вместо ^M, ваш текст станет гораздо понятнее.
Сценарии коммутируемого доступа поддерживают некоторые последовательности символов, знакомые программистам на языке C. Например, с помощью символа \ (обратный слэш) в коде появятся двойные кавычки. Вам также понадобится знак вставки, вводимый так: \^. Кроме того, нужен обратный двойной слэш (\\) и знак «меньше» (\<).
Команды
Язык сценариев для подключения удаленного доступа предусматривает несколько встроенных команд. Вы можете создать другие команды с помощью операторов proc и endproc. В табл. 18.2 представлен список встроенных команд, которые разрешается использовать для сценария.
Таблица 18.2.
Встроенные команды сценария
waitfor «Login:»
Значение этой команды – подождать, пока вы получите "Login: " – символьную строку от сервера. Как только вы ее получите, сразу начнет выполняться команда, находящаяся в следующей строке сценария. Если же вы не хотите продолжать выполнение именно со следующей строки, воспользуетесь такой формой команды: