Опишем более подробно те свойства объекта WScript, которые требуют дополнительных пояснений.
Свойство Arguments
В следующем примере (листинг 1.1) с помощью цикла for на экран выводятся все параметры командной строки, с которыми был запущен сценарий.
/*******************************************************************/
/* Имя: 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: