Андрей Попов - Windows Script Host для Windows 2000/XP
- Название:Windows Script Host для Windows 2000/XP
- Автор:
- Жанр:
- Издательство:БХВ-Петербург
- Год:2004
- Город:Санкт-Петербург
- ISBN:5-94157-197-6
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Андрей Попов - Windows Script Host для Windows 2000/XP краткое содержание
В книге описывается сервер сценариев Windows Script Host (WSH) версии 5.6, который является одним из стандартных компонентов Windows ХР, а также может быть установлен в более ранних версиях Windows. Приводятся сценарии на языках VBScript и JScript, иллюстрирующие применение стандартных объектов WSH 5.6, включая создание из сценариев дочерних процессов и запуск сценариев на удаленных компьютерах. В качестве более сложных примеров рассматриваются сценарии, работающие с базами данных, управляющие приложениями Microsoft Office, организующие графический пользовательский интерфейс, использующие технологии ADSI (Active Directory Service Interface) и WMI (Windows Management Instrumentation) для решения задач администрирования. Освещены вопросы практической работы с XML-файлами и создания СОМ-объектов. Особое внимание уделяется вопросам безопасности при работе со сценариями, приводятся конкретные примеры настроек политик безопасности. К книге прилагается дискета с исходными текстами большинства примеров.
Windows Script Host для Windows 2000/XP - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
} while ( условие );
В этом случае цикл выполняется до тех пор, пока проверяемое после ключевого слова while
условие не станет ложным ( false
). Так как условие проверяется уже после прохождения тела цикла, то операторы внутри цикла do…while
выполнятся по крайней мере один раз.
Пример использования цикла do…while
приведен в листинге П1.3.
do…while
var howFar = 11; // Верхний предел для счетчика цикла
var sum = new Array(howFar); //Массив из 11 элементов, индексы от 0 до 10
var theSum = 0;
sum[0] = 0;
var icount - 1;
//Цикл выполнится 10 раз
do {
theSum += icount; sum [icount] = theSum;
icount++; }
while (icount < howFar);
Внутри цикла любого вида можно применять два специальных оператора: break
и continue
.
Оператор break
С помощью оператора break
можно прервать выполнение цикла в любом месте; управление при этом передастся на оператор, следующий сразу за циклом.
var i = 0;
while (i < 100) {
if (i == 50) break;
i++;
}
i++; // Значение i станет равным 51
Оператор continue
Оператор continue
прерывает текущую итерацию цикла и начинает новую. В различных видах циклов этот оператор производит следующие действия:
□в циклах while
и do…while
проверяется условие цикла и если оно равно true
, то вновь выполняется тело цикла;
□ в цикле for
изменяется значение счетчика в разделе итерации, проверяется условие цикла и если оно равно true
, то тело цикла выполняется вновь;
□в цикле for…in
переменная цикла переходит к следующему полю объекта, и тело цикла выполняется вновь.
Пример использования оператора continue
:
var s = "", i=0;
while (i < 10) {
i++;
// Пропускаем число 5
if (i==5) {
continue;
}
}
s += i;
Прочие операторы
Рассмотрим еще несколько часто применяемых операторов (см. табл. П1.9).
Таблица П1.9.Прочие операторы
Оператор | Описание |
---|---|
. |
Точка. Применяется для доступа к свойству объекта или для вызова его метода |
[] |
Квадратные скобки. Применяются для индексирования массива |
() |
Скобки. Применяются либо для изменения порядка вычисления выражений, либо для передачи параметров функциям |
, |
Запятая. Применяется для многократных вычислений |
С помощью оператора " ,
" можно, например, в разделе итерации цикла for
изменять значение сразу нескольких переменных:
var i, j;
j = 10;
for (i = 0; i<=10; i++, j--) {
…
}
Обработка исключительных ситуаций
Во время выполнения сценария могут возникать различные исключительные ситуации (например, деление на ноль или попытка открыть несуществующий файл), которые приводят к ошибкам времени выполнения — при этом на экран выводится диалоговое окно с сообщением об ошибке и выполнение сценария прекращается.
Существует возможность написать код сценария таким образом, чтобы исключительные ситуации не приводили к завершению работы, а обрабатывались бы внутри сценария. Для осуществления подобной обработки исключительных ситуаций в JScript необходимо использовать конструкцию try…catch
. Синтаксис следующий:
try
Защищенный блок
catch ( except )
Блок обработки исключительных ситуаций
После ключевого слова try
здесь записываются те операторы, при выполнении которых потенциально может возникнуть ошибка. В качестве параметра except
надо использовать любое имя переменной (предварительно объявлять эту переменную не нужно). Если в защищенном блоке не возникло ошибки, то значение этой переменной будет равно нулю; в случае же возникновения исключительной ситуации управление сразу передается в блок catch
, при этом переменная except
как экземпляр объекта Error
будет содержать два свойства: error
— числовой код возникшей ошибки и description
— краткое описание ошибки.
В качестве примера приведем часть сценария, в которой происходит обработка исключительных ситуаций при подключении сетевого диска:
try {
//Подключаем сетевой диск
WshNetwork.MapNetworkDrive(Drive, NetPath);
} catch (e) {
//Обрабатываем возможные ошибки
if (e != 0) {
//Выводим сообщение об ошибке
Mess="Ошибка при подключении диска " + Drive + " к " + NetPath+
"\nКод ошибки: "+е.number+"\nОписание: "+е.description;
WshShell.Popup(Mess, 0, "Подключение сетевого диска", vbCritical);
}
}
Порядок выполнения операторов
В табл. П1.10 операторы языка JScript расположены по старшинству, т.е. в составных операторах первыми будут выполняться те из них, которые стоят в этой таблице выше. Если операторы расположены в одной строке таблицы, то они выполняются слева направо.
Таблица П1.10.Порядок выполнения операторов
Оператор | Описание |
---|---|
. [] () |
Доступ к полю объекта, индексирование в массиве, вызов функции |
++ -- - ~ ! |
Унарные операторы |
* / % |
Умножение, деление, вычисление остатка от деления |
+ - + |
Сложение, вычитание, конкатенация строк |
<< >> >>> |
Битовые сдвиги |
< <= > >= |
Меньше, меньше или равно, больше, больше или равно |
== != |
Равенство, неравенство |
& |
Логическое И |
^ |
Логическое ИСКЛЮЧАЮЩЕЕ ИЛИ |
| |
Логическое ИЛИ |
&& |
Оператор отношения И |
|| |
Оператор отношения ИЛИ |
?: |
Условный оператор |
= += -= *= /= %= >>= >>>= <<= |= &= ^= |
Присваивание |
, |
Многократное вычисление |
Функции
Функции в JScript, как и в других алгоритмических языках, позволяют объединить несколько операций под одним именем. В случае необходимости функция может быть вызвана из любого места сценария.
В сценариях JScript поддерживаются два вида функций: встроенные функции и функции пользователя, которые вы пишете сами.
Встроенные функции
В табл. П1.11 описаны встроенные функции языка JScript, которые в сценарии можно вызывать в любом месте без предварительного описания.
Таблица П1.11.Встроенные функции
Функция | Описание |
---|---|
escape( charstring ) |
Кодирование строки charstring с применением URL-кодировки. При этом все специальные неотображаемые символы преобразуются к виду %хх, где хх — шестнадцатеричный код символа |
eval(codes tring ) |
Интерпретация и выполнение кода JScript, содержащегося в строке codestring . Эта функция позволяет динамически создавать текст сценария |
isFinite( number ) |
Возвращает true , если параметр number является корректным числом. В противном случае возвращает false |
isNaN( numvalue ) |
Возвращает true , если параметр numvalue имеет специальное значение NaN (см. описание числового типа ). В противном случае возвращает false . Эту функцию можно применять для оценки значений; возвращаемых функциями преобразования типов parseInt и parseFloat |
parseFloat( numstring ) |
Преобразовывает строку numstring в число с плавающей точкой |
parseInt( numstring, [radix] ) |
Преобразовывает строку numstring в целое число. Целочисленный параметр radix может принимать значения от 2 до 36, которые указывают основание счисления для числа, содержащегося в numstring. Если radix не указан, то строки с префиксом '0х' задают шестнадцатеричные числа, а строки с префиксом ' 0 ' — восьмеричные. Все остальные строки определяют десятичные числа |
unescape( charstring ) |
Выполняет действие, противоположное действию функции escape , т.е. перекодирует строку charstring из URL-кодировки в текстовую строку |
Функции пользователя
Интервал:
Закладка: