Приложение 3 Средства разработки и отладки сценариев

В принципе, можно создавать сценарии в Блокноте Windows или в текстовых редакторах файловых оболочек типа Far Manager, а отлаживать их с помощью вывода в нужных местах сценария значений переменных на экран (метод

Echo
объекта
WScript
), однако при разработке больших сложных сценариев намного удобнее работать со специализированными редакторами и отладчиками.

Создание и редактирование сценариев

Одним из наиболее мощных и удобных редакторов сценариев для Windows является Primalscript, который разработан компанией SAPIEN Technologies, Inc. Последней на момент написания книги являлась версия Primalscript 2.2, ознакомительная 40-дневная версия которой может быть получена с сайта SAPIEN (http://www.sapien.com).

Редактор Primalscript

Редактор Primalscript поддерживает среду разработки практически для всех распространенных языков сценариев: JScript, VBScript, Perl, Python, Rexx, TCL, WinBatch, LotusScript и т.д. Для нас самым важным является то, что в Primalscript 2.2 полностью реализована поддержка Windows Script Host 5.6.

Ниже будут описаны основные операции, которые позволяет выполнить Primalscript при работе со сценариями.

Создание нового одиночного сценария

Для того чтобы создать новый одиночный сценарий (например, на языке JScript или VBScript), нужно выбрать пункт меню File|New, после чего на экран будет выведено диалоговое окно New, на вкладке Files которого представлен список поддерживаемых типов сценариев (рис. П3.1).

Рис. П3.1. Создание нового сценария — список типов файлов, поддерживаемых Primalscript


Замечание

Так как локализованных русскоязычных версий программ Primalscript и MS Script Debugger, которые описываются в этом приложении, пока нет (и вряд ли будут), автор специально не указывал перевод команд и пунктов меню на русский язык.

Указав в этом списке нужный тип (например, JScript) и нажав кнопку OK, мы получим в окне редактирования заготовку сценария с заполненным заголовком (рис. П3.2).

Рис. П3.2. Заготовка нового сценария на языке JScript

Открытие существующего одиночного сценария

Открыть уже существующий сценарий можно с помощью пункта меню File|Open. Диалоговое окно открытия файлов позволяет запретить изменения выбранного файла (режим "Только чтение"), а также отобразить этот файл в текстовом (Text) или шестнадцатеричном (Binary) виде (рис. П3.3).

Рис. П3.3. Открытие существующего сценария


Выбранный файл будет отображен в окне редактирования, при этом различные элементы сценария выделены цветом (рис. П3.4).

Рис. П3.4. JScript-сценарий в режиме редактирования

Создание нового WS-файла

Как и в случае обычного одиночного сценария, новый WS-файл создается с помощью пункта меню File|New, однако в диалоговом окне New нужно выбрать вкладку Workspaces, где представлены несколько мастеров для создания файлов различных типов (рис. П3.5).

Рис. П3.5. Список мастеров для создания файлов различных типов


В этом списке нам нужно выбрать Windows Script Wizard, после чего, на экран будет выведено диалоговое окно, в котором указывается имя создаваемого сценария (Script Name), каталог, в котором он будет храниться (Location), название задания (Job Name) и выбирается используемый язык (Language) (рис. П3.6).

Рис. П3.6. Общая информация о создаваемом сценарии


На втором шаге работы мастера мы указываем, какие внешние объекты будут использоваться в создаваемом сценарии (элемент

). По умолчанию предлагаются объекты 
Dictionary
,
FileSystem
,
Network
и
Shell
(рис. П3.7).

Рис. П3.7. Выбор внешних объектов, которые будут использоваться в создаваемом сценарии


Кнопка Browse открывает диалоговое окно Select Object, с помощью которого можно выбрать любой зарегистрированный в системе объект (рис. П3.8).

Рис. П3.8. Список зарегистрированных в системе объектов


Третий шаг работы мастера позволяет добавить в создаваемый WS-файл ссылки на нужные библиотеки типов зарегистрированных объектов (элемент

) (рис. П3.9).

Рис. П3.9. Выбор библиотек типов, которые будут использоваться в создаваемом сценарии


Как и на предыдущем шаге, кнопка Browse используется для выбора библиотеки типов, которая не представлена в списке по умолчанию (рис. П3.10).

Рис. П3.10. Список всех библиотек типов


На четвертом шаге требуется указать, какие внешние файлы со сценариями должны быть включены в создаваемое задание (элемент

Так как значение атрибута

debug
равно
true
, то оператор
debugger
передаст управление отладчику, причем, в отличие от одиночного сценария, WS-файл можно запускать как с ключами
//D
или
//X
, так и без них.

Если же изменить в сценарии ForDebug.wsf инструкцию

следующим образом:

то отладка будет отключена, причем независимо от использования ключей

//D
и
//X
при запуске сценария (это может понадобиться при эксплуатировании в рабочем режиме WS-файла, содержащего операторы
debug
или
Stop
).

Команды отладчика

Команды, имеющиеся в Microsoft Script Debugger, позволяют выполнять трассировку сценариев, просматривать список вызванных процедур или функций, анализировать и изменять значения переменных.

Установка и удаление точек прерывания

Для того чтобы установить точку прерывания в определенной строке сценария, нужно поместить курсор в эту строку и нажать или выбрать пункт меню Debug|Toggle Breakpoint. Строки с точками прерывания будут отмечены красными точками около левой границы окна отладчика. При достижении точки прерывания отладчик останавливает исполнение сценария.

Для удаления одной точки прерывания необходимо поместить курсор в нужную строку и вновь нажать или выбрать пункт меню Debug|Toggle Breakpoint. Если нужно убрать все точки прерывания, то можно воспользоваться командой меню Debug|Clear All Breakpoints.

Выполнение сценария

Открытый в отладчике сценарий может выполняться в разных режимах с помощью соответствующих команд меню Debug.

С помощью команды Debug|Run (или нажатия клавиши

Для того чтобы выполнить только один оператор (режим пошагового выполнения), нужно выбрать команду Debug|Step Into или нажать . Следующий исполняемый оператор при этом будет помечен стрелкой около левой границы окна отладчика.

Если в режиме пошагового выполнения в сценарии встречается вызов определенной пользователем процедуры/функции, то возможны два варианта. Продолжая выполнять команду Debug|Step Into, мы будем останавливаться на каждом операторе внутри процедуры/функции. Для того чтобы, находясь внутри процедуры/функции, не проходить оставшиеся операторы по отдельности, можно выполнить команду Debug|Step Out (или нажать ++). После этого управление передастся оператору, который стоит в сценарии первым после вызова этой процедуры/функции.

Если нет необходимости проверять внутреннюю работу процедуры/функции пользователя, то нужно выбрать команду Debug|Step Over или нажать комбинацию клавиш +. При этом данная процедура/функция выполнится без остановок и исполнение сценария остановится на следующем после нее операторе.

Команда Debug|Stop Debugging прерывает исполнение сценария и завершает процесс отладки.

Просмотр стека вызовов

В отладчике можно вывести окно Call Stack со списком всех активных процедур и функций сценария. Для этого нужно выполнить команду View|Call Stack. Например, если вызвать это окно, находясь внутри функции

MyFunc() 
в сценарии ForDebug.js, то в списке мы увидим название функции
MyFunc()
(рис. П3.29).

Рис. П3.29. Окно

Call Stack

Просмотр и изменение значений переменных

Получать и изменять текущие значения переменных или свойств объектов во время остановки исполнения сценария позволяет окно Command, которое вызывается командой View|Command Window. При этом анализ переменных в JScript- и VBScript-сценариях производится следующим образом.

Для просмотра значения переменной в JScript-сценарии нужно в окне Command набрать имя этой переменной и нажать . Например, для того, чтобы увидеть значение переменной

s
в сценарии ForDebug.js, мы в окне Command вводим
s
и нажимаем (рис. П3.30).

Чтобы вывести значение переменной в VBScript-сценарии, нужно в окне Command ввести имя этой переменной и поставить перед ним знак

?
. Например,

? s

Рис. П3.30. Просмотр значений переменных в окне


Для изменения значения переменной нужно просто присвоить новое значение этой переменной в окне Command (это относится и к JScript- и к VBScript-сценариям). Например,

s="Новое значение переменной s"

Загрузка...