Для запуска второго задания, выводящего на экран строку 'Второе задание (JScript)
', нужно явно указывать идентификатор этого задания, поэтому используется одна из двух команд:
cscript //job:'JS' multijob.wsf
wscript //job:'JS' multijob.wsf
Использование констант внешних объектов
Для того чтобы в сценарии обращаться по имени к константам, определенным во внешних объектах, не создавая экземпляров самих объектов, необходимо сначала получить ссылку на эти объекты с помощью элемента <reference>
.
В листинге 3.10 приведен сценарий refer.wsf, в котором с помощью элемента <reference>
производится доступ к трем константам объекта FileSystemObject
(ForReading
, ForWriting
и ForAppending
), которые определяют режим работы из сценария с внешним текстовым файлом.
<job id='Example'>
<runtime>
<description>
Имя: refer.wsf
Кодировка: Windows
Описание: Использование констант внешних объектов
</description>
</runtime>
<!-- Получаем ссылку на объект FileSystemObject -->
<reference object='Scripting.FileSystemObject'/>
<script language='JScript'>
var s;
s='Значения констант объекта FileSystemObject:
';
//Получаем значение константы ForReading
s+='ForReading='+ForReading+'
';
//Получаем значение константы ForWriting
s+='ForWriting='+ForWriting+'
';
//Получаем значение константы ForAppending
s+='ForAppending='+ForAppending;
//Выводим полученные строки на экран
WScript.Echo(s);
</script>
</job>
В результате выполнения сценария refer.wsf на экран выведется диалоговое окно с информацией о значениях констант объекта FileSystemObject
(рис. 3.8).

Рис. 3.8. Результат работы сценария refer.wsf
Подключение внешних файлов
К WS-файлу можно подключать 'обычные' JScript- или VBScript-сценарии, которые находятся во внешних файлах. Для этого нужно указать путь к этому внешнему файлу в атрибуте src
элемента <script>
.
Для примера создадим файл inc.js, в который запишем строку
WScript.Echo('Здесь выполняется сценарий inc.js');
и файл main.wsf, содержание которого приведено в листинге 3.11.
<job id='Example'>
<runtime>
<description>
Имя: main.wsf
Кодировка: Windows
Описание: Подключение сценария, находящегося во внешнем файле
</description>
</runtime>
<!-- Подключаем сценарий из файла inc.js -->
<script language='JScript' src='inc.js'/>
<!-- Определяем основной сценарий -->
<script language='JScript'>
WScript.Echo('Здесь выполняется основной сценарий');
</script>
</job>
Если запустить main.wsf с помощью cscript.exe, то на экран выведутся две строки:
Здесь выполняется сценарий inc.js
Здесь выполняется основной сценарий
Два языка внутри одного задания (использование функции InputBox языка VBScript в сценариях JScript)
Как уже отмечалось вInputBox
, предназначенная как раз для этой цели; используя разметку XML, мы можем легко использовать эту функцию в сценариях JScript. Соответствующий пример приведен в сценарии multilang.wsf (листинг 3.12).
Сначала в этом сценарии на языке VBScript описывается функция InputName
, которая возвращает строку, введенную с помощью функции InputBox
:
<script language='VBScript'>
Function InputName
InputName = InputBox('Введите Ваше имя:', 'Окно ввода VBScript')
End Function
</script>
Затем в следующем разделе <script>
приводится JScript-сценарий, в котором происходит вызов функции InputName
и сохранение возвращаемого ею значения в переменной s:
var s;
s = InputName();