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

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

Жанры

Windows Script Host для Windows 2000/XP

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

Шрифт:

var objArgs, e, x;

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

//Создаем объект Enumerator для коллекции objArgs

e = new Enumerator(objArgs);

for (;!e.atEnd;e.moveNext) {

 x = e.item; //Получаем значение элемента коллекции

 WScript.Echo(x); //Выводим значение параметра на экран

}

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

Однако

намного удобнее использовать методы
Count
и
Item
самого объекта
WshArguments
(метод
Item
имеется у всех коллекций WSH). Метод
Count
возвращает число элементов в коллекции, т. е. количество аргументов командной строки, а метод
Item(n)
— значение n-го элемента коллекции (нумерация начинается с нуля). Более того, чтобы получить значение отдельного элемента коллекции
WshArguments
, можно просто указать его индекс в круглых скобках после имени объекта.

Замечание

Число элементов в коллекции хранится и в свойстве

Length
объекта
WshArguments
.

Таким образом, предыдущий пример можно переписать более компактным образом (листинг 1.5).

Листинг 1.5. Вывод всех параметров сценария (методы WSH)

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

/* Имя: ShowArgs.js */

/* Язык: JScript */

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

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

var i, objArgs;

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

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

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

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

С помощью объекта

WshArguments
можно также выделять и отдельно обрабатывать аргументы сценария, у которых имеются имена (например,
/Name:Andrey
) и безымянные аргументы. Ясно, что использование именных параметров более удобно, т. к. в этом случае нет необходимости запоминать, в каком порядке должны быть записаны параметры при запуске того или иного сценария.

Для доступа к именным и безымянным аргументам используются соответственно два специальных свойства объекта

WshArguments
:
Named
и
Unnamed
.

Свойство

Named
содержит ссылку на коллекцию
WshNamed
, свойство
Unnamed
— на коллекцию
WshUnnamed
.

Таким образом, обрабатывать параметры командной строки запущенного сценария можно тремя способами:

просматривать полный

набор всех параметров (как именных, так и безымянных) с помощью коллекции
WshArguments
;

выделить только те параметры, у которых есть имена (именные параметры) с помощью коллекции

WshNamed
;

выделить только те параметры, у которых нет имен (безымянные параметры) с помощью коллекции

WshUnnamed
.

У объекта

WshArguments
имеется еще один метод
ShowUsage
. Этот метод служит для вывода на экран информации о запущенном сценарии (описание аргументов командной строки, пример запуска сценария и т.д.). В свою очередь, подобную информацию можно задать только при использовании WSH-сценариев с разметкой XML; более подробно о применении метода
ShowUsage
идет речь в главе 3 при рассмотрении элементов
<runtime>
,
<description>
,
<example>
,
<named>
и
<unnamed>
.

Объект WshNamed

Объект

WshNamed
содержит коллекцию параметров командной строки запущенного сценария, у которых имеется уникальное имя (именные параметры). В WSH 5.6 именной параметр всегда начинается с символа "/", после чего приводится имя этого параметра, затем ставится двоеточие ":" и пишется значение параметра, например:

/Name:Andrey

В качестве значения именного параметра рассматривается набор символов, начинающихся после двоеточия и заканчивающихся перед первым встретившимся пробелом. Для того чтобы значением параметра командной строки была строка, состоящая из нескольких слов, необходимо заключить эту строку в кавычки. Например:

/Name:"Andrey Popov"

Создается объект WshNamed с помощью свойства

Named
коллекции
WshArguments
. Для того чтобы получить значение определенного аргумента, его имя используется в качестве индекса коллекции.

Замечание

Узнать число именных параметров можно только с помощью свойства

Length
коллекции
WshNamed
; метода
Count
у этой коллекции нет.

Например, пусть сценарий MyScript.js запущен с двумя именными параметрами:

MyScript.js /User:Andrey /Computer:Server1

Тогда вывести на экран значение параметров Name и Computer можно двумя способами:

var objNamedArgs;

objNamedArgs=WScript.Arguments.Named;

WScript.Echo("Имя пользователя: "+objNamedArgs.Item("User"));

WScript.Echo("Имя компьютера: "+objNamedArgs.Item ("Computer"));

или просто

var objNamedArgs;

objNamedArgs=WScript.Arguments.Named;

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

На границе империй. Том 10. Часть 2

INDIGO
Вселенная EVE Online
Фантастика:
космическая фантастика
5.00
рейтинг книги
На границе империй. Том 10. Часть 2

Наследник старого рода

Шелег Дмитрий Витальевич
1. Живой лёд
Фантастика:
фэнтези
8.19
рейтинг книги
Наследник старого рода

Отмороженный 11.0

Гарцевич Евгений Александрович
11. Отмороженный
Фантастика:
боевая фантастика
рпг
попаданцы
фантастика: прочее
фэнтези
5.00
рейтинг книги
Отмороженный 11.0

Барону наплевать на правила

Ренгач Евгений
7. Закон сильного
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Барону наплевать на правила

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

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

Эволюционер из трущоб. Том 4

Панарин Антон
4. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Эволюционер из трущоб. Том 4

Я не князь. Книга XIII

Дрейк Сириус
13. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я не князь. Книга XIII

Звездная Кровь. Изгой VII

Елисеев Алексей Станиславович
7. Звездная Кровь. Изгой
Фантастика:
боевая фантастика
технофэнтези
рпг
фантастика: прочее
попаданцы
5.00
рейтинг книги
Звездная Кровь. Изгой VII

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

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

Идеальный мир для Лекаря 6

Сапфир Олег
6. Лекарь
Фантастика:
фэнтези
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 6

Чертова дюжина

Юллем Евгений
2. Псевдоним "Испанец" - 2
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Чертова дюжина

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

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

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

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

Я граф. Книга XII

Дрейк Сириус
12. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я граф. Книга XII