В принципе, можно создавать сценарии в Блокноте 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. Общая информация о создаваемом сценарии
На втором шаге работы мастера мы указываем, какие внешние объекты будут использоваться в создаваемом сценарии (элемент
Рис. П3.7. Выбор внешних объектов, которые будут использоваться в создаваемом сценарии
Кнопка Browse открывает диалоговое окно Select Object, с помощью которого можно выбрать любой зарегистрированный в системе объект (рис. П3.8).
Рис. П3.8. Список зарегистрированных в системе объектов
Третий шаг работы мастера позволяет добавить в создаваемый WS-файл ссылки на нужные библиотеки типов зарегистрированных объектов (элемент
Рис. П3.9. Выбор библиотек типов, которые будут использоваться в создаваемом сценарии
Как и на предыдущем шаге, кнопка Browse используется для выбора библиотеки типов, которая не представлена в списке по умолчанию (рис. П3.10).
Рис. П3.10. Список всех библиотек типов
На четвертом шаге требуется указать, какие внешние файлы со сценариями должны быть включены в создаваемое задание (элемент
Так как значение атрибута debug равно true, то оператор debugger передаст управление отладчику, причем, в отличие от одиночного сценария, WS-файл можно запускать как с ключами //D или //X, так и без них.
Если же изменить в сценарии ForDebug.wsf инструкцию следующим образом:
то отладка будет отключена, причем независимо от использования ключей //D и //X при запуске сценария (это может понадобиться при эксплуатировании в рабочем режиме WS-файла, содержащего операторы debug или Stop).
Команды отладчика
Команды, имеющиеся в Microsoft Script Debugger, позволяют выполнять трассировку сценариев, просматривать список вызванных процедур или функций, анализировать и изменять значения переменных.
Установка и удаление точек прерывания
Для того чтобы установить точку прерывания в определенной строке сценария, нужно поместить курсор в эту строку и нажать
Для удаления одной точки прерывания необходимо поместить курсор в нужную строку и вновь нажать
Выполнение сценария
Открытый в отладчике сценарий может выполняться в разных режимах с помощью соответствующих команд меню 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 набрать имя этой переменной и нажать
Чтобы вывести значение переменной в VBScript-сценарии, нужно в окне Command ввести имя этой переменной и поставить перед ним знак ?. Например,
? s
Рис. П3.30. Просмотр значений переменных в окне
Для изменения значения переменной нужно просто присвоить новое значение этой переменной в окне Command (это относится и к JScript- и к VBScript-сценариям). Например,
s="Новое значение переменной s"