Чтение онлайн

на главную - закладки

Жанры

Windows Script Host для Windows 2000/XP

Попов Андрей Викторович

Шрифт:

Опишем более подробно те свойства объекта WScript, которые требуют дополнительных пояснений.

Свойство Arguments

В следующем примере (листинг 1.1) с помощью цикла for на экран выводятся все параметры командной строки, с которыми был запущен сценарий.

Листинг 1.1. Вывод на экран всех параметров сценария

/*******************************************************************/

/* Имя: ShowArgs.js */

/* Язык: JScript */

/* Описание: Вывод на экран параметров запущенного сценария */

/*******************************************************************/

var i, objArgs;

objArgs = WScript.Arguments; //Создаем объект WshArguments

for (i=0; i<=objArgs.Count-1; i++)

 WScript.Echo(objArgs(i)); //Выводим
на экран i-й аргумент

/************* Конец *********************************************/

Другие примеры работы с аргументами командной строки приведены в листингах 1.4, 1.5, 2.22 и 2.23.

Свойства StdErr, StdIn, StdOut

Доступ к стандартным входным и выходным потокам с помощью свойств

StdIn
,
StdOut
и
StdErr
можно получить только в том случае, если сценарий запускался в консольном режиме с помощью cscript.exe. Если сценарий был запущен с помощью wscript.exe, то при попытке обратиться к этим свойствам возникнет ошибка "
Invalid Handle
" (рис. 1.9).

Рис. 1.9. Ошибка при обращении к

StdIn
в графическом режиме

Работать с потоками

StdOut
и
StdErr
можно с помощью методов
Write
,
WriteLine
,
WriteBlankLines
, а с потоком
StdIn
— с помощью методов
Read
,
ReadLine
,
ReadAll
,
Skip
,
SkipLine
. Эти методы кратко описаны в табл. 1.3.

Таблица 1.3. Методы для работы с потоками

Метод Описание
Read(n)
Считывает из потока
StdIn
заданное параметром n число символов и возвращает полученную строку
ReadAll
Читает символы из потока
StdIn
до тех пор, пока не встретится символ конца файла ASCII 26 (<Ctrl>+<Z>), и возвращает полученную строку
ReadLine
Возвращает строку, считанную из потока
StdIn
Skip(n)
Пропускает при чтении из потока
StdIn
заданное параметром n число символов
SkipLine
Пропускает целую строку при чтении из потока
StdIn
Write(string)
Записывает в поток
StdOut
или
StdErr
строку
string
(без символа конца строки)
WriteBlankLines(n)
Записывает в поток
StdOut
или
StdErr
заданное параметром n число пустых строк
WriteLine(string)
Записывает в поток
StdOut
или
StdErr
строку
string
(вместе с символом конца строки)

Напомним, что операционная система Windows поддерживает механизм конвейеризации (символ "|" в командной строке). Этот механизм делает возможным передачу данных от одной программы к другой. Таким образом, используя стандартные входные и выходные потоки, можно из сценария обрабатывать строки вывода другого приложения или перенаправлять выводимые сценарием данные на вход программ-фильтров (

FIND
или
SORT
). Например, следующая команда будет сортировать строки вывода сценария example.js и выводить их в файл sort.txt:

cscript //Nologo example.js | sort > sort.txt

Опция //Nologo здесь нужна для того, чтобы в файл sort.txt не попадали строки с информацией о разработчике и номере версии WSH.

Кроме этого, с помощью методов, работающих

с входным потоком StdIn, можно организовывать диалог с пользователем, т. е. создавать интерактивные сценарии. Пример такого сценария представлен в листинге 1.2.

Листинг 1.2. Пример интерактивного сценария

/*******************************************************************/

/* Имя: Interact.js */

/* Язык: JScript */

/* Описание: Ввод/вывод строк в консольном режиме */

/*******************************************************************/

var s;

//Выводим строку на экран

WScript.StdOut.Write("Введите число: ");

//Считываем строку

s = WScript.StdIn.ReadLine;

//Выводим строку на экран

WScript.StdOut.WriteLine("Вы ввели число " + s);

/************* Конец *********************************************/

Объект

WScript
имеет несколько методов, которые описаны в табл. 1.4.

Таблица 1.4. Методы объекта

WScript

Метод Описание
CreateObject(strProgID [, strPrefix])
Создает объект, заданный параметром
strProgID
ConnectObject(strObject, strPrefix)
Устанавливает соединение с объектом
strObject
, позволяющее писать функции-обработчики его событий (имена этих функций должны начинаться с префикса
strPrefix
)
DisconnectObject(obj)
Отсоединяет объект
obj
, связь с которым была предварительно установлена в сценарии
Echo([Arg1] [, Arg2] [,…])
Выводит текстовую информацию на консоль или в диалоговое окно
GetObject(strPathname [, strProgID], [strPrefix])
Активизирует объект автоматизации, определяемый заданным файлом (параметр
strPathName
), или объект, заданный параметром
strProgID
Quit([intErrorCode])
Прерывает выполнение сценария с заданным параметром
intErrorCode
кодом выхода. Если параметр
intErrorCode
не задан, то объект
WScript
установит код выхода равным нулю
Sleep(intTime)
Приостанавливает выполнения сценария (переводит его в неактивное состояние) на заданное параметром
intTime
число миллисекунд

Приведем дополнительные пояснения и примеры использования для методов, приведенных в табл. 1.4.

Метод CreateObject

Строковый параметр

strProgID
, указываемый в методе
CreateObject
, называется программным идентификатором объекта (Programmic Identifier, ProgID).

Если указан необязательный параметр

strPrefix
, то после создания объекта в сценарии можно обрабатывать события, возникающие в этом объекте (естественно, если объект предоставляет интерфейсы для связи с этими событиями). Когда объект сообщает о возникновении определенного события, сервер сценариев вызывает функцию, имя которой состоит из префикса
strPrefix
и имени этого события. Например, если в качестве
strPrefix
указано "
MYOBJ_
", а объект сообщает о возникновении события "
OnBegin
", то будет запущена функция "
MYOBJ_OnBegin
", которая должна быть описана в сценарии.

Поделиться:
Популярные книги

Лекарь Империи 9

Карелин Сергей Витальевич
9. Лекарь Империи
Фантастика:
городское фэнтези
аниме
боевая фантастика
5.00
рейтинг книги
Лекарь Империи 9

Товарищ "Чума" 4

lanpirot
4. Товарищ "Чума"
Фантастика:
городское фэнтези
альтернативная история
5.00
рейтинг книги
Товарищ Чума 4

Я еще граф. Книга #8

Дрейк Сириус
8. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Я еще граф. Книга #8

Газлайтер. Том 25

Володин Григорий Григорьевич
25. История Телепата
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Газлайтер. Том 25

Великий князь

Кулаков Алексей Иванович
2. Рюрикова кровь
Фантастика:
альтернативная история
8.47
рейтинг книги
Великий князь

Буря империи

Сай Ярослав
6. Медорфенов
Фантастика:
аниме
фэнтези
фантастика: прочее
эпическая фантастика
5.00
рейтинг книги
Буря империи

Законы Рода. Том 3

Мельник Андрей
3. Граф Берестьев
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 3

Страж Кодекса. Книга VI

Романов Илья Николаевич
6. КО: Страж Кодекса
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Страж Кодекса. Книга VI

Сильнейший Столп Империи. Книга 1

Ермоленков Алексей
1. Сильнейший Столп Империи
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Сильнейший Столп Империи. Книга 1

Вернувшийся: Новая жизнь. Том I

Vector
1. Вернувшийся
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Вернувшийся: Новая жизнь. Том I

Петля, Кадетский корпус. Книга третья

Алексеев Евгений Артемович
3. Петля
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Петля, Кадетский корпус. Книга третья

Черный Маг Императора 4

Герда Александр
4. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 4

Мастер 3

Чащин Валерий
3. Мастер
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Мастер 3

Печать Пожирателя

Соломенный Илья
4. Пожиратель
Фантастика:
аниме
сказочная фантастика
фэнтези
попаданцы
5.00
рейтинг книги
Печать Пожирателя