Книга: Windows Script Host для Windows 2000/XP
Объект WshArguments
Разделы на этой странице:
Объект WshArguments
Объект WshArguments
содержит коллекцию всех параметров командной строки запущенного сценария или ярлыка Windows. Этот объект можно создать только с помощью свойства Arguments
объектов WScript
и WshShortcut
.
В принципе, работать с элементами коллекции WshArguments
можно стандартным для JScript образом — создать объект Enumerator
и использовать его методы moveNext
, item
и atEnd
. Например, вывести на экран все параметры командной строки, с которыми запущен сценарий, можно следующим образом (листинг 1.4).
Листинг 1.4. Вывод всех параметров сценария (стандартные коллекции JScript)
/********************************************************************/
/* Имя: EnumArgs.js */
/* Язык: JScript */
/* Описание: Вывод на экран параметров запущенного сценария */
/********************************************************************/
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>
.
- Объект WshUnnamed
- Объекты-коллекции
- Объект WshNamed
- 1.1. Введение в объектно-ориентированное программирование
- ЧАСТЬ IV. База данных и ее объекты.
- 1.1.1. Что такое объект
- Практическая работа 53. Запуск Access. Работа с объектами базы данных
- Физические объекты
- Иерархия объектов в InterBase
- Имена объектов длиной 68 символов
- Создание объектов Collection
- 7.12. Объективизация времени