- Файл сценария Windows — Windows Script File
- Изоляция ошибок
- Поддержка смешанного языка
- Отображение констант
- Файл сценария Windows — Windows Script File
- Изоляция ошибок
- Поддержка смешанного языка
- Отображение констант
- Файл сценария Windows — Windows Script File
- Поддержка смешанного языка
- Отображение констант
- Windows Script Host: файлы .wsf
Файл сценария Windows — Windows Script File
A Файл скрипта Windows (WSF ) — это тип файла, используемый Microsoft Windows Script Host . Он позволяет смешивать языки сценариев JScript и VBScript в одном файле или другие языки сценариев, такие как Perl , Object REXX , Python или Kixtart , если он установлен пользователем. Эти типы сценариев также могут использоваться для связывания многих других внешних сценариев вместе с помощью параметра src в теге » или «
Изоляция ошибок
WSF может быть полезно для выявления ошибок. Его модульный характер не позволяет одной ссылке на скрипт мешать работе другой. Вот пример WSF с одним модулем, который выдает ошибку, а другой — нет:
Первый модуль скрипта выдаст ошибку «деление на ноль». Обычно это приводит к тому, что сценарий завершается на Windows Script Host , но этот модульный метод позволяет сценарию продолжить и выполнить второй модуль сценария.
Поддержка смешанного языка
Файл сценария Windows поддерживает несколько языков, как описано в справочнике Windows Script Host . Одна из особенностей этого формата файла заключается в том, что вы можете использовать несколько файлов одновременно. Это означает, что один язык сценариев может использовать код другого языка сценариев. Самый запоминающийся пример для давних пользователей VBScript — использование Microsoft JScript для обслуживания запроса сортировки для VBScript , поскольку он не имеет встроенного функция сортировки для массива значений. Пользователи VBScript могут написать свой собственный метод сортировки или заимствовать его из существующего объекта, такого как ADO (объекты данных ActiveX ) Recordset или .NET (.NET Framework ) ArrayList , но самый быстрый способ отсортировать массив — использовать метод, встроенный в JScript . Вот базовый пример того, как это работает:
Результат выглядит так, отсортированный по ASCII коду последовательность:
Отображение констант
Еще одна очень полезная функция WSF заключается в том, что оболочка XML может быть привязана к ссылке на объект или элементу управления, чтобы вы могли использовать константы вместо того, чтобы объявлять их. В обычных файлах VBScript и JScript вам необходимо будет объявить значение константы (за пределами тех, которые являются внутренними для Windows Script Host ), чтобы использовать константа. Пример этого показан ниже:
Если в документации по объекту упоминается только имя константы, а не значение константы, у вас не было бы возможности узнать значение без помощи интегрированной среды разработки , которая сообщила бы вам, чему они приравниваются. Используя объявление ссылки WSF, вы можете использовать константы без объявления их значений. В приведенном ниже примере перечислены значения нескольких общих констант в ADO (объекты данных ActiveX ) Recordset .
Запуск вышеуказанного сценария из файла с «.WSF» расширение, например, с именем «EnumerateConstantsADO.wsf» , даст результат, показанный ниже:
Кроме того, использование ссылки на объект для предоставления констант делает написание скрипта более похожим на написание на стандартном языке программирования. Фактически, содержимое примера сценария, написанного на VBScript, будет фактически компилироваться в программу Visual Basic и выполняться таким же образом, пока эта программа использует ту же ссылку на ADODB.
Файл сценария Windows — Windows Script File
A Файл скрипта Windows (WSF ) — это тип файла, используемый Microsoft Windows Script Host . Он позволяет смешивать языки сценариев JScript и VBScript в одном файле или другие языки сценариев, такие как Perl , Object REXX , Python или Kixtart , если он установлен пользователем. Эти типы сценариев также могут использоваться для связывания многих других внешних сценариев вместе с помощью параметра src в теге » или «
Изоляция ошибок
WSF может быть полезно для выявления ошибок. Его модульный характер не позволяет одной ссылке на скрипт мешать работе другой. Вот пример WSF с одним модулем, который выдает ошибку, а другой — нет:
Первый модуль скрипта выдаст ошибку «деление на ноль». Обычно это приводит к тому, что сценарий завершается на Windows Script Host , но этот модульный метод позволяет сценарию продолжить и выполнить второй модуль сценария.
Поддержка смешанного языка
Файл сценария Windows поддерживает несколько языков, как описано в справочнике Windows Script Host . Одна из особенностей этого формата файла заключается в том, что вы можете использовать несколько файлов одновременно. Это означает, что один язык сценариев может использовать код другого языка сценариев. Самый запоминающийся пример для давних пользователей VBScript — использование Microsoft JScript для обслуживания запроса сортировки для VBScript , поскольку он не имеет встроенного функция сортировки для массива значений. Пользователи VBScript могут написать свой собственный метод сортировки или заимствовать его из существующего объекта, такого как ADO (объекты данных ActiveX ) Recordset или .NET (.NET Framework ) ArrayList , но самый быстрый способ отсортировать массив — использовать метод, встроенный в JScript . Вот базовый пример того, как это работает:
Результат выглядит так, отсортированный по ASCII коду последовательность:
Отображение констант
Еще одна очень полезная функция WSF заключается в том, что оболочка XML может быть привязана к ссылке на объект или элементу управления, чтобы вы могли использовать константы вместо того, чтобы объявлять их. В обычных файлах VBScript и JScript вам необходимо будет объявить значение константы (за пределами тех, которые являются внутренними для Windows Script Host ), чтобы использовать константа. Пример этого показан ниже:
Если в документации по объекту упоминается только имя константы, а не значение константы, у вас не было бы возможности узнать значение без помощи интегрированной среды разработки , которая сообщила бы вам, чему они приравниваются. Используя объявление ссылки WSF, вы можете использовать константы без объявления их значений. В приведенном ниже примере перечислены значения нескольких общих констант в ADO (объекты данных ActiveX ) Recordset .
Запуск вышеуказанного сценария из файла с «.WSF» расширение, например, с именем «EnumerateConstantsADO.wsf» , даст результат, показанный ниже:
Кроме того, использование ссылки на объект для предоставления констант делает написание скрипта более похожим на написание на стандартном языке программирования. Фактически, содержимое примера сценария, написанного на VBScript, будет фактически компилироваться в программу Visual Basic и выполняться таким же образом, пока эта программа использует ту же ссылку на ADODB.
Файл сценария Windows — Windows Script File
Windows Script File ( WSF ) является тип файла , используемый Microsoft Windows Script хоста . Он позволяет смешивать языки сценариев JScript и VBScript в одном файле или другие языки сценариев, такие как Perl , Object REXX , Python или Kixtart, если они установлены пользователем. Эти типы сценариев также могут использоваться для связывания многих других внешних сценариев вместе с помощью src параметра » или «
Первый модуль сценария выдаст ошибку «делить на ноль». Обычно это приводит к тому, что сценарий завершается на хосте сценариев Windows, но этот модульный метод позволяет сценарию продолжить и выполнить второй модуль сценария.
Поддержка смешанного языка
Файл сценария Windows поддерживает несколько языков, как описано в справочнике Windows Script Host . Одна из особенностей этого формата файла заключается в том, что вы можете использовать несколько файлов одновременно. Это означает, что один язык сценариев может использовать код другого языка сценариев. Самым запоминающимся примером для давних пользователей VBScript является использование Microsoft JScript для обслуживания запроса сортировки для VBScript, поскольку он не имеет встроенной функции сортировки для массива значений. VBScript пользователи могут написать свой собственный метод сортировки или заимствовать один из существующего объекта , как в ADO ( объекты ActiveX Data ) Recordset или .NET ( .NET Framework ) ArrayList , но самый быстрый способ сортировки массива заключается в использовании метода , встроенный в JScript . Вот простой пример того, как это работает:
Результат выглядит так, отсортированный по последовательности кода ASCII :
Отображение констант
Еще одна очень полезная функция WSF заключается в том, что оболочка XML может быть привязана к ссылке на объект или элементу управления, поэтому вы можете использовать константы этого объекта вместо того, чтобы объявлять их. В обычных файлах VBScript и JScript вам придется объявить значение константы (за пределами тех, которые являются внутренними для Windows Script Host ), чтобы использовать константу. Пример этого показан ниже:
Если ваша документация по объекту ссылается только на имя константы, а не на значение константы, у вас не будет возможности узнать значение без помощи интегрированной среды разработки, которая скажет вам, чему они приравниваются. Используя объявление ссылки WSF, вы можете использовать константы без объявления их значений. В приведенном ниже примере перечислены значения нескольких общих констант в наборе записей ADO ( объекты данных ActiveX ) .
Запуск приведенного выше сценария из файла с «.WSF» расширением, например, с именем «EnumerateConstantsADO.wsf» , даст результат, показанный ниже:
Кроме того, использование ссылки на объект для предоставления констант делает написание сценария более похожим на написание на стандартном языке программирования. Фактически, содержимое примера сценария, написанного на VBScript, будет фактически компилироваться в программу Visual Basic и работать таким же образом, пока эта программа использует ту же ссылку на ADODB.
Windows Script Host: файлы .wsf
В статье «Windows Script Host: типы файлов», мы говорили о том, что Windows Script Host (WSH) представляет собой реализованный на базе технологии COM сервер, предназначенный для выполнения сценариев в среде Windows. В нем изначально имеется поддержка языков JScript и VBScript, однако возможно использование и других языков, если будут дополнительно установлены соответствующие компоненты.
В статье «Windows Script Host: типы файлов», мы говорили о том, что Windows Script Host (WSH) представляет собой реализованный на базе технологии COM сервер, предназначенный для выполнения сценариев в среде Windows. В нем изначально имеется поддержка языков JScript и VBScript, однако возможно использование и других языков, если будут дополнительно установлены соответствующие компоненты.
Посредством WSH могут выполняться как автономные сценарии (т.е. написанные на каком-то определенном языке), так и сценарии .wsf (Windows Script file). Сценарии последнего типа представляют собой текстовые файлы формата XML, которые могут содержать код, реализованный более чем на одном языке. И хотя эти сценарии имеют несколько более сложную структуру, они предоставляют в распоряжение разработчика ряд полезных возможностей, которые весьма затруднительно реализовать в автономных сценариях.
Формат XML файлов .wsf
Формат XML, который используется в файлах .wsf, во многом похож на тот, что применяется в HTML. В XML используются теги разметки, заключаемые в угловые скобки (<>), называемые элементами, которые описывают данные файла. Полный перечень элементов XML, используемый в файлах .wsf можно найти по адресу: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/wsorixmlelements.asp. Ниже приводится краткий обзор синтаксиса XML:
- Для того чтобы указать, что файл имеет формат XML, он должен начинаться с элемента .
- Все элементы чувствительны к регистру и должны заключаться в угловые скобки.
- Тег, открывающий элемент, должен иметь вид , в закрывающем теге после открывающей угловой скобки должен стоять символ прямого слеша, после которого следует имя элемента (т.е. .
- Элемент может иметь один или несколько атрибутов, которые записываются в виде атрибут=»значение». Значение атрибута должно быть заключено в двойные кавычки. Например, .
- Если у элемента нет закрывающего тега, то в этом случае в открывающем теге перед закрывающейся угловой скобкой необходимо использовать символ прямого слеша. Пример: .
- Элемент может включать в себя другие элементы, но в этом случае теги не должны перекрываться (т.е. открывающий и закрывающий теги внутреннего элемента должны предшествовать закрывающему тегу внешнего элемента).
- Допускается использование элементов-комментариев, что осуществляется путем вставки текста между открывающим тегами.
Однако эти символы достаточно часто встречаются в коде VBScript и JScript. Поэтому чтобы исключить замену этих элементов в тексте сценариев, и вместе с тем избежать проблем обработки XML, фрагменты кода VBScript и JScript нужно размещать внутри маркеров .
В Листинге 1 показан минимальный набор элементов XML для построения сценария .wsf. Он должен содержать хотя бы один элемент . Внутри элемента . Во-вторых, не требуется указывать полный путь к подключаемому файлу. Если не указано иное, сервер WSH предполагает, что этот файл хранится в том же каталоге, что и сценарий.
Также следует обратить внимание на то, что файл, на который организуется ссылка, содержит только код на соответствующем языке сценариев, и в нем нет никаких элементов XML. Например, код из другого файла .wsf подключить нельзя.
Самодокументирующиеся сценарии
Для того чтобы сделать сценарий самодокументирующимся в элемент файла .wsf можно добавить элемент , внутрь которого включить набор элементов. В этом случае, когда в строке запуска сценария указывается аргумент /? или вызывается метод ShowUsage объекта WScript .Arguments, WSH выводит на экран краткое сообщение, базирующееся на содержимом элементов . Элемент может включать следующие элементы:
Элемент . Внутри элемента должно содержаться краткое описание сценария. Если сценарий запускается с аргументом /? или вызывается метод ShowUsage объекта WScript .Arguments, то в этом случае WSH автоматически выводит на экран текст, заключенный между тегами и . При этом на экран выводится все, что заключено между этими тегами, включая переходы на новую строку, пробелы и табуляцию.
Элемент . В элементе содержится описание неименованных аргументов сценария (т.е. тех аргументов, имена которых не начинаются с символа прямого слеша (/)). У данного элемента нет закрывающего тега, но он имеет два обязательных атрибута: name (имя), определяющий имя аргумента, и атрибут helpstring (справочная строка), который содержит описание аргумента. Также имеется третий, дополнительный, атрибут required (необходимо), который может иметь значения «true» или «false»; таким образом определяется, нужно ли заключать имя аргумента в квадратные скобки ([ ]) в справочном сообщении об использовании. По умолчанию используется значение «false».
Кроме того, элемент может включать в себя атрибут many, который также должен иметь булево значение (т.е. «true» или «false»). Если он равен «true», то в справочном сообщении будет показываться, что данный аргумент может использоваться более одного раза, при этом в конце имени аргумента ставится номер и многоточие (. ). Если задано many=»true», то необходимо также использовать атрибут, определяющий нужное количество аргументов.
Элемент . Элемент описывает именованные аргументы сценария (т.е. те аргументы командной строки, которые начинаются с символа прямого слеша (/)). Элемент не имеет закрывающего тега и требует наличия атрибутов name и helpstring, содержащих, соответственно, имя и описание именованного аргумента. Если здесь добавить атрибут required=»true», то в справочном сообщении имя аргумента все равно не будет заключаться в квадратные скобки.
Здесь существует также дополнительный атрибут type (тип), определяющий тип данных аргумента, он может принимать значения «string», «boolean», или «simple». По умолчанию используется значение «simple». Значение этого атрибута влияет на отображение справочного сообщения. Если выбрано type=»string», то к аргументу добавляется символ двоеточия (:) и слово value, указывающее на необходимость ввода значения. Если выбрано type=»boolean», то в этом случае к аргументу добавляется строка [+|-], а это говорит о том, что после имени аргумента необходимо задать символ плюс (+) или минус (-). Если же выбирается type=»simple» (либо данный атрибут опущен), аргумент отображается «как есть».
Важно отметить, что элементы и определяют только ту информацию, которая будет отображаться в справочном сообщении, когда в команде запуска сценария используется аргумент /? либо вызывается метод ShowUsage объекта WScript .Arguments и не более того. Эти элементы не выполняют никакой проверки правильности задания аргументов командной строки, они просто содержат справочные данные о том, какими эти аргументы должны быть.
Элемент . Элемент не является обязательным, в нем можно указать какой-либо пример корректного вызова сценария. Он будет отображаться на экране после описаний аргументов командной строки. Как и в случае элемента , на экран выводится все содержимое, заключенное между тегами и , включая переходы на новую строку, пробелы и табуляцию.
Элемент . Если вас не устраивает текст, который отображается в справочном сообщении по умолчанию, то с помощью элемента его можно заменить. Чтобы облегчить понимание сценария для пользователя, можно по-прежнему задействовать другие элементы . Как и для элементов и , на экран выводится все содержимое, заключенное между тегами и , включая переходы на новую строку, пробелы и табуляцию.
В Листинге 3 приведен пример сценария, в котором применяются элементы , и , а на Рисунке 1 показано сообщение, выводимое сценарием при его запуске через сервер сценариев WScript. Обратите внимание, что в элементах атрибут required=»true» не используется, поэтому аргументы отображаются в квадратных скобках, что указывает на то, что они не являются обязательными.
Многоязычные сценарии
Еще одной сильной стороной сценариев .wsf является возможность включения в них кода, написанного на разных языках. Соответственно, элемент может содержать более одного элемента
Листинг 2: Подключение кода из файла автономного сценария
Листинг 3: Сценарий, демонстрирующий использование элементов