Microsoft Windows Script Host:
Универсальный Сервер Сценариев
Данная статья представляет собой перевод статьи Microsoft Windows Script Host: A
Universal Scripting Host for Scripting Languages из MSDN Windows Script Host Technical Articles,
с небольшими вставками из справки систем Windows 2000 и XP.
Автором перевода также внесены небольшие не отмеченные в тексте
дополнения.
(с) 2002 перевод Кочуров А.Л.
Введение
Microsoft Windows Script Host (WSH), в русских версиях Windows
называемый Сервером Сценариев, представляет собой языконезависимый
сервер (контроллер обработчиков сценариев) для 32-х разрядных операционных систем Microsoft Windows. В
состав WSH включены обработчики сценариев
(scripting engines) языков Visual Basic Script и Java Script. Другими поставщиками программного обеспечения могут быть созданы
обработчики сценариев
(в виде ActiveX-объектов) для
других языков, таких как Perl, TCL, REXX, и Python.
Примером может служить обработчик сценариев, написанных на языке
V7Script, включенный фирмой 1С в состав Web-расширения
системы 1С:Предприятие.
Существуют две версии сервера сценариев Windows: Wscript.exe, позволяющая
задавать параметры выполнения сценариев в окне свойств, и Сscript.exe,
позволяющая задавать параметры выполнения сценариев с помощью ключей командной
строки. Чтобы запустить необходимую версию, введите в командной строке:
Wscript.exe или Cscript.exe.
В этой статье обсуждается следующие вопросы:
-
Способы использования Сервера Сценариев Windows
-
Как установить Сервер Сценариев
-
Как использовать Сервер Сценариев
Сервер Сценариев Windows встроен в Windows 98, Windows
Me, Windows 2000, Windows
XP, в Internet Information Services начиная с версии 4.0. Он
также доступен и для Windows 95.
Преимущества, предоставляемые Сервером Сценариев Windows
Сервер Сценариев Windows (WSH ) обеспечивает возможность запуска
сценариев на 32-х разрядных платформах Windows.
Создание более мощных сценариев
Ранее единственным встроенным языком сценариев,
поддерживаемым Windows, был язык команд
MS-DOS (команды, исполняемые из командной строки и из
BAT-файлов). Хотя этот язык является достаточно
быстрым и компактным, он имеет ограниченные возможности по сравнению с
языками Visual Basic Script и Java Script.
На сегодняшний день Сервер Сценариев Windows
позволяет пользователям использовать преимущества мощных языков
сценариев, таких как Visual Basic Script и
Java Script, язык команд MS-DOS также поддерживается.
Способы
выполнения сценариев Windows
Архитектура ActiveX,
реализующая выполнение сценариев, позволяет использовать такие языки
как VB Script, Java Script, и
Perl. Microsoft в
настоящее время предоставляет возможность выполнять сценарии на этих
языках при помощи трех видов серверов (контроллеров)
на платформе Windows:
-
Microsoft Internet Explorer
-
Internet Information Services (IIS)
-
Сервер Сценариев Windows (WSH)
Internet Explorer позволяет выполнять сценарии
(обычно на Java Script), содержащиеся в
HTML-страницах, на клиентских машинах.
Internet Information Services поддерживает технологию
Active Server Pages (ASP),
позволяющую запускать сценарии (как правило, на VB Script),
на Web-серверах. В частности, это используется
для автоматической генерации передаваемых клиенту через Internet
или по внутренней сети страниц.
Сервер Сценариев Windows (WSH)
позволяет выполнять сценарии, непосредственно в
графическом окне Windows или
в текстовой консоли, при этом нет необходимости встраивать тексты
сценариев в документ HTML. Сценарии могут быть
запущены напрямую щелчком мыши на файле сценария в Проводнике
Windows, либо из командной строки консоли. WSH
не требует много оперативной памяти, и удобен для выполнения задач, не
требующих взаимодействия с пользователем, таких как написание сценариев
входа (logon), для выполнения административных
задач. При запуске
сценария с рабочего стола или из командной строки, сервер сценария читает и
передает содержимое указанного файла зарегистрированному обработчику сценариев.
Для определения языка сценария используется
расширение имени файла (.vbs для VBScript, .js для JScript).
Установка Сервера Сценариев
Для использования WSH на
компьютере должен быть установлен Microsoft Internet
Explorer версии не ниже 3.0.
Сервер сценариев использует обработчики сценариев для языков
Visual Basic Script и Java Script,
встроенные Internet Explorer. Для установки
WSH на Windows 95
необходимо загрузить программу установки с сайта Microsoft.
Запуск сценариев из
командной строки
Для выполнения сценариев с помощью сервера сценариев для командной строки
(Cscript.exe) предусмотрен следующий синтаксис:
cscript [имя_сценария] [параметры_сервера] [аргументы_сценария]
Здесь:
-
имя_сценария
— имя файла сценария, включая путь и расширение.
-
параметры_сервера
— ключи командной строки, задающие различные свойства сервера сценариев
Windows. Параметр сервера всегда начинается с двух косых черт (//).
-
аргументы_сценария — ключи командной строки, которые передаются в
сценарий. Аргумент сценария всегда начинается с одной косой черты (/).
Примечания
-
Все параметры являются необязательными, однако нельзя задать аргументы
сценария, не задав сценарий. При отсутствии аргументов сценария или самого
сценария программа Cscript.exe выведет описание синтаксиса команды и
предусмотренные ключи.
-
Ключи сервера сценариев для командной строки (см. таблицу).
Параметр |
Действие |
//B |
Включение пакетного режима, при котором не выводятся подсказки и сообщения об
ошибках. |
//D
|
Включение отладчика. |
//E:обработчик |
Указание обработчика, используемого для выполнения сценария. |
//H:cscript или //H:wscript
|
Регистрация Cscript.exe или Wscript.exe в качестве сервера сценариев,
применяемого по умолчанию. Если ключ не задан, используется Wscript.exe. |
//I
|
Включение интерактивного режима, в котором выводятся подсказки и сообщения об
ошибках. Применяется по умолчанию; отменяет ключ //B. |
//Job:xxxx |
Выполнение задания xxxx, указанного в файле сценария .wsf. |
//Logo
|
Отображение перед выполнением сценария эмблемы сервера сценариев Windows.
Применяется по умолчанию; отменяет режим //Nologo. |
//Nologo
|
Скрытие перед выполнением сценария эмблемы сервера сценариев Windows. |
//S
|
Сохранение параметров текущей командной строки для данного пользователя. |
//T:nnnnn |
Указание максимального времени (в секундах), отведенного на выполнение
сценария. Можно указать значение времени до 32 767 секунд. По умолчанию время
выполнения не ограничено. |
//X
|
Запуск сценария в отладчике. |
//?
|
Вывод предусмотреных параметров командной строки и встроенной справки
(аналогично запуску программы Cscript.exe без аргументов и без задания
сценария). |
-
Параметр времени ожидания (//T:nnnnn) ограничивает
максимальное время выполнения сценария. Если время выполнения превышает
заданную величину, Cscript.exe прерывает работу обработчика и останавливает
процесс.
-
Для использования с сервером сценариев Windows можно создать файл .wsf, позволяющий
вызвать несколько обработчиков сценариев и выполнить несколько заданий,
в том числе, написанных на разных языках сценариев.
Запуск сценариев с
помощью сервера сценариев для Windows
Способы запустить сценарий в окне Windows:
-
Двойным щелчком мышью по файлу или ярлыку в
окне "Мой компьютер", "Поиск" или в окне Проводника
Windows.
-
С использованием команды Windows
"Выполнить..." - вызвать Wscript.exe
с именем и параметрами сценария, либо сделать то же самое из
командной строки Windows.
Если расширение файла сценария еще не связано с программой
wscript.exe, то появится диалоговое окно "Открыть
с помощью", в котором нужно выбрать программу, с
помощью которой нужно открывать этот файл сценария. Программа wscript
будет зарегистрирована как приложение по умолчанию для запуска всех
файлов с данным расширением, если после выбора программы "Cервер
сценариев Windows" (wscript.exe) флажок "Использовать
ее для всех файлов такого типа" будет установлен.
Например, если установить этот флажок при запуске программы с
расширением .vbs, то wscript.exe станет приложением по умолчанию для
запуска всех программ с таким расширением.
Обзор архитектуры Сервера Сценариев
Как и Microsoft Internet Explorer, Сервер
Сценариев Windows может быть контроллером
для ActiveX обработчиков
сценариев. Однако в отличие от Internet Explorer, Сервер Сценариев Windows не требует много памяти и является идеальным
средством как для интерактивных, так и для обычных сценариев, таких как
сценарий входа и сценарий администрирования.
Сервер Сценариев читает и передает содержимое файла
сценария зарегистрированному ActiveX обработчику
сценариев (script engine), экспортирующему метод
IActiveScriptParse::ParseScriptText.
На рисунке 1 приведена иллюстрация этого
процесса.

Рисунок 1. Диаграмма движения данных
от сервера с сценариев к обработчику сценариев
Вместо тега SCRIPT (применяется в HTML) для определения языка
сценария используется расширение имени файла (.vbs для VBScript, .js для
JScript). Благодаря этому, разработчик сценария не обязан знать точные
программные идентификаторы (ProgID) различных обработчиков сценариев.
Сопоставление расширения имени файла сценария с ProgID и запуск
конкретного обработчика сценариев осуществляется сервером сценариев
Windows.
Источники дополнительной информации
Для получения самой последней информации о технологиях
использования сценариев Windows посетите сайт
Microsoft:
www.microsoft.com/scripting
|