СКРИПТОВЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ Введение в Windows Script Host

advertisement
СКРИПТОВЫЕ ЯЗЫКИ
ПРОГРАММИРОВАНИЯ
Введение в
Windows Script Host
Лекция 2
преподаватель кафедры ТМСИ
Губин Максим Владимирович
Возможности WSH

Резервирование и восстановление файлов в системе.

Выключение или перезапуск Windows одним щелчком.
Выполнение задач связанных с завершением работы системы,
например, резервное копирование или ведение протоколов, журналов.

Интегрирование приложений с их данными.
Например, сценарий может запустить приложение из пакета Office, загрузить и обработать документ,
вывести его на печать и закрыть приложение. Подобным образом вы можете ассоциировать документ с
любым приложением.

Решение задач администрирования системы.
Добавление, обновление и удаление пользовательских учетных записей.

Прямой доступ к оболочке Windows.
Для создания ярлыков или подключения сетевых устройств, таких как диски и принтеры через
соответствующие объекты.

Считывание значений переменных окружения и получение сведений о Windows.

Запуск программ и управление объектами Automation.

Вывод диалоговых окон, информирующих пользователя о состоянии программы
или получающих вводимую им информацию.

Обращение к оболочке Windows и интерфейсам прикладного программирования
2
(API) для управления окнами и приложениями.
WSH 2.0
Первоначально WSH 1 поставлялся с Windows NT 4 Option Pack. Он
также входит в состав Windows 98.
Если WSH 1 не активен, его следует установить как
дополнительный компонент Windows.
WSH 2 - неотъемлемая часть Windows 2000, так что если вы
работаете в этой ОС, установка WSH 2 не требуется.
Чтобы выяснить, установлен ли в
вашей системе WSH, выполните
wscript /?
3
Отличия VBScript от Visual Basic/VBA
и JScript - от JavaScript
 Скрипты не могут быть скомпилированы в EXE-файлы.
В WSH придется держать все сценарии в простых текстовых .vbs-, .js- или .wsfфайлах. Для интерпретации содержимого файла сценария WSH использует
обработчики Windows Script, так что можно создавать сценарии с помощью
простого текстового редактора (Notepad).
 В языки VBScript и JScript (поставляются с WSH 2) не входят
конструкции вроде оператора Declare из Visual Basic и VBA,
позволяющие обращаться к внешним функциям и процедурам.
 В VBScript нет процедур для расширенной обработки ошибок в
период выполнения (таких как On Error GoTo метка).
 Ни VBScript, ни JScript не поддерживают явное объявление типов
данных. Любая переменная рассматривается как Variant.
 Объектная модель WSH отличается от объектной модели Internet
Explorer. Так, в WSH не поддерживается объект window.document для
вывода информации пользователем.
4
Способы выполнения сценариев Windows
 Microsoft Internet Explorer
позволяет выполнять сценарии (обычно на Java Script),
содержащиеся в HTML-страницах, на клиентских машинах.
 Internet Information Services (IIS)
поддерживает технологию Active Server Pages (ASP),
позволяющую запускать сценарии (как правило, на VBScript) на
Web-серверах.
 Сервер Сценариев Windows (WSH)
позволяет выполнять сценарии, непосредственно в графическом
окне Windows или в текстовой консоли, при этом нет
необходимости встраивать тексты сценариев в документ HTML.
5
Создание и использование сценариев
'************************************************
' Файл: Hello.vbs (пример для WSH на VBScript)
' Автор: (c) G. Born
' Выводит простое диалоговое окно
'************************************************
WScript.Echo “Hello, world”
'*** Конец
6
//************************************************
// Файл: Hello.js (Пример для WSH на JScript)
// Автор: (c) G. Born
//
// Выводит простое окно сообщения
//************************************************
WScript.Echo("Hello, world");
//*** Конец
7
Реализация сервера сценариев
WSH реализован в двух файлах:
 WScript.exe - это сервер сценариев, предназначенный для
взаимодействия с пользователем через диалоговые окна
Windows.
 CScript.exe - это консольное приложение Windows (работает в
окне командной строки и посылает выходную информацию
STDOUT подобно встроенным командам MS-DOS).
CScript.exe предназначен главным образом для
неинтерактивных задач.
В Windows оба сервера располагаются в папке
\Windows\System32.
8
Запуск сценария
Запустим сценарий через диалоговое окно Run используя
WScript.exe или CScript.exe (этот метод особенно удобен,
когда сценарию требуется передать аргументы).
Для этого:
 в меню Start выберем команду Run;
 в текстовом поле Open введём исполнимую команду
(например, WScript.exe C:\Test\Hello.vbs);
 нажимаем OK, чтобы закрыть диалоговое окно и исполнить
сценарий.
9
Параметры запуска сценариев
10
Дополнительные свойства сценария
Нужно щелкнуть сценарий правой кнопкой,
выбрать из контекстного меню Properties и
установить нужные значения на странице
свойств сценария.
Windows создаст новый файл с именем
файла сценария и расширением .wsh.
Файлы с расширением .wsh - это текстовые
файлы, похожие на .ini-файлы. Их можно
открывать в любом текстовом редакторе.
[ScriptFile]
Path=C:\WSHDevGuide\Chapter01\Hello.js
[Options]
Timeout=10
DisplayLogo=1
11
'************************************************
' Файл: Args.vbs (Пример для WSH на VBScript)
' Автор: (c) G. Born
' Выводит в диалоговом окне все переданные аргументы
'************************************************
text = "Arguments" & vbCrLf & vbCrLf
Set objArgs = WScript.Arguments ' Создать объект.
For i = 0 to objArgs.Count – 1' Цикл для обработки аргументов.
text = text & objArgs(i) & vbCrLf ' Получить аргумент.
Next
WScript.Echo text ' Показать аргумент с помощью метода Echo.
'*** Конец
12
Пример
WScript.exe "./Args.vbs" "Hello, world"
WScript.exe "./Args.vbs" "Hello, world" 1 2 3
СScript.exe "./Args.vbs" "Hello, world" 1 2 3
СScript.exe "./Args.vbs" "Hello, world" 1 2 3 > test.txt
13
//************************************************
// Файл: Args.js (Пример для WSH на JScript)
// Автор: (c) G. Born
// Выводит аргументы сценария в диалоговом окне
//************************************************
var objArgs;var text = "Arguments \n\n";
var objArgs = WScript.Arguments; // Создать объект.
for (var i = 0; i < objArgs.length; i++) // Цикл для обработки аргументов.
text = text + objArgs(i) + '\n'; // Получить аргумент.
WScript.Echo(text); // Показать аргументы с помощью метода Echo.
//*** Конец
14
Windows script file
Microsoft определен формат файлов с расширением .wsf
("Windows script file").
Файл .wsf с минимальным набором команд имеет такую
структуру:
<job id="T1">
<script language="VBScript">
WScript.Echo "Hello, world"
</script>
</job>
Тэги описывают элементы XML, а элемент <script> ...
</script> содержит обычный код сценариев.
15
Пример на .wsf
<?xml version="1.0" encoding="ISO-8859-1"?>
<job id="T1">
<script language="JScript" src="/contents/Hello.js"/>
<script language="VBScript">
<![CDATA[
text = "world"
WScript.Echo "Hello, " & text
]]>
</script>
</job>
16
Использование библиотек типов
<?xml version="1.0" encoding="ISO-8859-1"?>
<job id="TypeLibExample">
<reference guid='{420B2830-E718-11CF-893D-00A0C9054228}'/>
<script language="VBScript">
<![CDATA[
WScript.Echo "CDRom = " & CDRom & vbCrLf & _
"Fixed = " & Fixed & vbCrLf & _
"RamDisk = " & RamDisk & vbCrLf & _
"Remote = " & Remote & vbCrLf & _
"Unknown = " & Unknown & vbCrLf & _
"Removable = " & Removable
// используется ссылка
// на объект FileSystemObject
]]>
</script>
</job>
17
Отладочные функции
Операторы типа stop и debugger из .vbs- и .js файлов
позволяют автоматически вызвать установленный
отладчик.
Для отладки сценария в среде WSH 2 при его вызове
надо указать один из переключателей командной
строки, //D или //X.
Отлаживать .wsf-файл позволяет команда
<?job debug="true"?>
HKEY_CURRENT_USER\Software\Microsoft\Windows Script\Settings
установите параметр JITDebug в 1
18
Пример
<?xml version="1.0" encoding="ISO-8859-1"?>
<job id="T1">
<?job debug="true"?>
<script language="VBScript">
stop
WScript.Echo "Hello"
</script>
<script language="JScript">
debugger;
WScript.Echo("Hello else");
</script>
</job>
19
Download