Windows Script Host для Windows 2000/XP | страница 13
можно получить только в том случае, если сценарий запускался в консольном режиме с помощью 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 ( |
>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.
>/*******************************************************************/
>/* Имя: Interact.js */
>/* Язык: JScript */