Андрей Попов - Windows Script Host для Windows 2000/XP
- Название:Windows Script Host для Windows 2000/XP
- Автор:
- Жанр:
- Издательство:БХВ-Петербург
- Год:2004
- Город:Санкт-Петербург
- ISBN:5-94157-197-6
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Андрей Попов - Windows Script Host для Windows 2000/XP краткое содержание
В книге описывается сервер сценариев Windows Script Host (WSH) версии 5.6, который является одним из стандартных компонентов Windows ХР, а также может быть установлен в более ранних версиях Windows. Приводятся сценарии на языках VBScript и JScript, иллюстрирующие применение стандартных объектов WSH 5.6, включая создание из сценариев дочерних процессов и запуск сценариев на удаленных компьютерах. В качестве более сложных примеров рассматриваются сценарии, работающие с базами данных, управляющие приложениями Microsoft Office, организующие графический пользовательский интерфейс, использующие технологии ADSI (Active Directory Service Interface) и WMI (Windows Management Instrumentation) для решения задач администрирования. Освещены вопросы практической работы с XML-файлами и создания СОМ-объектов. Особое внимание уделяется вопросам безопасности при работе со сценариями, приводятся конкретные примеры настроек политик безопасности. К книге прилагается дискета с исходными текстами большинства примеров.
Windows Script Host для Windows 2000/XP - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Имя: ForDebug.wsf
Описание: WS-файл для отладки в Microsoft Script Debugger
WScript.Echo("Это сообщение выведется до запуска отладчика");
debugger;
WScript.Echo("А это сообщение появится уже в отладчике");
Так как значение атрибута 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"
Приложение 4
Ошибки выполнения сценариев в WSH
Ошибки, которые могут возникнуть при выполнении сценариев WSH, вместе с описанием возможных причин их появления, приведены в табл. П4.1.
Таблица П4.1.Ошибки WSH 5.6
Сообщение об ошибке | Причина |
---|---|
A duplicate name for a named or unnamed element was encountered: xxx | Попытка повторного использования имени аргумента |
Argument list too long | Связано с запуском сценария при помощи технологии Drag-and-Drop: на файл сценария "опущено" слишком много параметров — имен файлов |
Cannot write to wsh.log | При вызове метода LogEvent в Windows 9х или Windows ME файл %windir%\wsh.log оказался заблокированным для записи |
Can't save settings | Ошибка при сохранении файла с настройками сценария (*.wsh) |
Environment variable could not be removed | Вызов метода Environment.Remove для несуществующей переменной среды |
Invalid attempt to call Exec without a command | Вызов метода WshShell.Exec() без указания аргумента (команды для выполнения) |
Invalid shortcut path name | Попытка создать ярлык с неправильным расширением файла (расширение должно быть lnk или url) |
Printer not found | Неправильно указано имя принтера при вызове метода SetDefaultPrinter |
Protocol handler for could not be found | Попытка установить ярлык на сетевой ресурс, использующий некорректно зарегистрированный обработчик протокола |
Registry key contains invalid root | Вызов метода RegRead или RegWrite для некорректного ключа реестра |
Registry key could not be opened | Вызов метода RegRead для несуществующего ключа реестра |
Registry key could not be removed | Вызов метода RegDelete для несуществующего ключа реестра |
Remote script object can only be executed once | Попытка повторно запустить объект — удаленный сценарий |
Shortcut contains invalid syntax | Сохранение ярлыка на сетевой ресурс, имеющий некорректный URL |
Shortcut could not be saved | Попытка сохранить новый ярлык в файле, который уже существует и имеет атрибут "Только для чтения" |
Shortcut failed to execute protocol handler | Попытка установить ярлык на сетевой ресурс, использующий несуществующий обработчик протокола |
Unable to execute remote script | Невозможно создать процесс — удаленный сценарий |
Unable to find job | В WS-файле нет задания с идентификатором |
Unable to wait for process | С помощью метода Run дано указание ожидать завершение процесса, которое из сценария определить нельзя |
Приложение 5
Интервал:
Закладка: