Hare.ru @ Коллективный разум / Hare.ru @ Дикое место

Архив hare.ru 
Мысли, конвертированные в текст

Полезные технологии


Все статьи раздела

MS WSH: Универсальный Сервер Сценариев

Александр Кочуров (январь 2003)

Оригинал статьи: kochurov.narod.ru

Данная статья представляет собой перевод статьи "Microsoft Windows Script Host: A Universal Scripting Host for Scripting Languages" из MSDN Windows Script Host Technical Articles, с небольшими вставками из справочных систем Windows 2000 и Windows XP. Автором перевода также внесены небольшие и не отмеченные в тексте дополнения.

Введение

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 и NT.

Преимущества, предоставляемые Сервером Сценариев 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.

Партнеры:


Также может быть интересно:

Канал Россия 1 на http://spbtvonline.ru/
   
 Сайт поддерживается за счет партнеров:
:::... Сайт содержит архив двух версий hare.ru Карта сайта