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

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

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

Таблица 5.2. Методы для работы с потоками
Метод Описание
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, можно организовывать диалог с пользователем, то есть создавать интерактивные сценарии. Соответствующий пример приведен в листинге 5.2.

'*******************************************************************

'* Имя: Interact.vbs

'* Язык: VBScript

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

'*******************************************************************

Dim s

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

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

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

s = WScript.StdIn.ReadLine

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

WScript.StdOut.WriteLine "Вы ввели число " & s

'************* Конец *********************************************

Листинг 5.2. Ввод/вывод строк в символьном режиме

 








Дата добавления: 2018-03-01; просмотров: 361;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.