Языки VBScript и JScript для сценариев WSH
Как уже отмечалось выше, в принципе сценарии WSH можно писать на любом языке, поддерживающем технологию ActiveX Scripting. Однако для всех таких языков, кроме VBScript и JScript, в системе придется дополнительно устанавливать те или иные модули (библиотеки) поддержки. Поэтому чаще всего при работе с WSH пользуются именно языками VBScript или JScript – сценарии на этих языках гарантированно работают на любой машине с операционной системой Windows.
По синтаксису и стилю программирования эти два языка сильно отличаются друг от друга. Язык JScript — это разработанный Microsoft интерпретируемый объектно-ориентированный язык сценариев, который первоначально предназначался для создания динамических HTML-страниц. Отметим, что JScript не является урезанной версией какого-либо другого языка программирования, хотя по синтаксису он похож на языки Java и C. Язык VBScript (Visual Basic Script Edition) – это облегченная версия языка Microsoft Visual Basic, поэтому для тех, кто программировал на Visual Basic или VBA (Visual Basic for Application) язык VBScript окажется очень знакомым.
Какой именно из языков использовать – в большей степени дело вкуса и привычки. Если вы писали на C или Java, то, скорее всего, остановитесь на JScript; если вы программируете на Visual Basic или VBA (Visual Basic for Application), то очень знакомым вам окажется язык VBScript.
Отметим также, что при выборе языка для написания сценария, обращающегося к внешним объектам (а это делается практически в каждом сценарии Windows), в пользу VBScript можно привести несколько дополнительных аргументов.
Во-первых, VBScript позволяет напрямую в цикле For Each … Next перебирать элементы коллекций (такие коллекции часто являются свойствами внешних объектов), а в JScript для этого приходится использовать вспомогательный объект Enumerator и цикл for с условием завершения и оператором итерации. Рассмотрим следующий пример. Предположим, что переменная Folder является объектом, соответствующим корневому каталогу диска C:, т.е. Folder представляет собой коллекцию, содержащую объекты-файлы, находящиеся в корневом каталоге. Тогда перебор всех этих файлов в VBScript организуется следующим образом:
'Создаем коллекцию Files всех файлов в корневом каталоге диска C:
Set Files = Folder.Files
'Перебираем все элементы коллекции Files
For Each File In Files
'Выделяем имя файла для текущего элемента File коллекции
s = s & File.Name & vbCrLf
Next
Аналогичный код на JScript выглядит так:
//Создаем коллекцию файлов
Files=new Enumerator(Folder.Files);
//Цикл по всем файлам
for (; !Files.atEnd(); Files.moveNext())
//Добавляем строку с именем файла
s+=Files.item().Name+"\n";
//Выводим полученные строки на экран
Во-вторых, VBScript позволяет напрямую вызывать методы объектов WMI (технология WMI будет подробно рассмотрена в следующих лекциях), в то время как в JScript эти методы приходится вызывать с помощью специального объекта SWbemObject, а также объектов InParam (входящие параметры для вызова метода) и OutParam (параметры, формируемые после выполнения метода).
Наконец, подавляющее большинство примеров сценариев, которые можно найти в документации Microsoft или сети Интернет, написаны на VBScript, их можно использовать в своих разработках без изменений, не тратя время на перевод кода на другой язык.
Подробное рассмотрение синтаксиса языков VBScript и JScript выходит за рамки данного курса; ниже в примерах сценариев мы будем преимущественно использовать VBScript.
Дата добавления: 2018-03-01; просмотров: 673;