KnigaRead.com/

Андрей Попов - Windows Script Host для Windows 2000/XP

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Андрей Попов, "Windows Script Host для Windows 2000/XP" бесплатно, без регистрации.
Перейти на страницу:

В  РРјСЏ: strict.wsf

В  РљРѕРґРёСЂРѕРІРєР°: Windows

  Описание: Пример строгого режима обработки WS-файла

В  </description>

В </runtime>

В <script language="JScript">

В  <![CDATA[

   WScript.Echo("Всем привет!");

В  ]]>

В </script>

</job>

Несколько заданий в одном файле 

Каждое отдельное задание в WS-файле должно находиться внутри элементов <job> и </job>. В свою очередь, все элементы <job> являются дочерними элементами контейнера <package>.

В качестве примера рассмотрим сценарий multijob.wsf, приведенный в листинге 3.9. Здесь описываются два задания с идентификаторами "VBS" (сценарий на языке VBScript) и "JS" (сценарий на языке JScript).

Листинг 3.9. Файл multijob.wsf

<package>

В <job id="VBS">

  <!-- Описываем первое задание (id="VBS") -->

В  <runtime>

В В  <description>

В В  РРјСЏ: multijob.wsf

В В  РљРѕРґРёСЂРѕРІРєР°: Windows

   Описание: Первое задание из example.wsf

В В  </description>

В  </runtime>

В  <script language="VBScript">

   WScript.Echo "Первое задание (VBScript)"

В  </script>

В </job>

В <job id="JS">

  <!-- Описываем второе задание (id="JS") -->

В  <runtime>

В В  <description>

В В  РРјСЏ: example.wsf

В В  РљРѕРґРёСЂРѕРІРєР°: Windows

   Описание: Второе задание из example.wsf

В В  </description>

В  </runtime>

В  <script language="JScript">

   WScript.Echo("Второе задание (JScript)");

В  </script>

В </job>

</package>

Для того чтобы выполнить первое задание сценария multijob.wsf, которое выведет на экран строку "Первое задание (VBScript)", нужно выполнить одну из следующих команд:

cscript //job:"VBS" multijob.wsf

cscript multijob.wsf

wscript //job:"VBS" multijob.wsf

wscript multijob.wsf

Для запуска второго задания, выводящего на экран строку "Второе задание (JScript)", нужно явно указывать идентификатор этого задания, поэтому используется одна из двух команд:

cscript //job:"JS" multijob.wsf

wscript //job:"JS" multijob.wsfВ 

Рспользование констант внешних объектов

Для того чтобы в сценарии обращаться по имени к константам, определенным во внешних объектах, не создавая экземпляров самих объектов, необходимо сначала получить ссылку на эти объекты с помощью элемента <reference>.

В листинге 3.10 приведен сценарий refer.wsf, в котором с помощью элемента <reference> производится доступ к трем константам объекта FileSystemObject (ForReading, ForWriting и ForAppending), которые определяют режим работы из сценария с внешним текстовым файлом.

Листинг 3.10. Рспользование РІ сценарии констант внешних объектов (файл refer.wsf)

<job id="Example">

В <runtime>

В  <description>

В  РРјСЏ: refer.wsf

В  РљРѕРґРёСЂРѕРІРєР°: Windows

В  Описание: Рспользование констант внешних объектов

В  </description>

В </runtime>

 <!-- Получаем ссылку на объект FileSystemObject -->

В <reference object="Scripting.FileSystemObject"/>

В <script language="JScript">

В  var s;

  s="Значения констант объекта FileSystemObject:nn";

  //Получаем значение константы ForReading

В  s+="ForReading="+ForReading+"n";

  //Получаем значение константы ForWriting

В  s+="ForWriting="+ForWriting+"n";

  //Получаем значение константы 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.

Листинг 3.11. Подключение внешнего сценария (файл main wsf)

<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)

Как уже отмечалось в главе 2, ни в WSH, ни в JScript нет метода или функции, которые позволяли бы в графическом режиме создать диалоговое окно для ввода текста. Однако в языке VBScript имеется функция InputBox, предназначенная как раз для этой цели; используя разметку XML, мы можем легко использовать эту функцию в сценариях JScript. Соответствующий пример приведен в сценарии multilang.wsf (листинг 3.12).

Сначала в этом сценарии на языке VBScript описывается функция InputName, которая возвращает строку, введенную с помощью функции InputBox:

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*