Объект WScript — свойство Arguments

Объект WScript — свойство Arguments Объектная модель Windows Script Host

В данной публикации мы изучим работу с аргументами, которые можно передать сценариям сервера Windows Script Host, а именно свойство объекта WScript – Arguments. Данное свойство хранит в себе коллекцию всех аргументов, которые были переданы сценарию.

Если мы запускаем наш сценарий в консольном режиме (командная строка), то аргументы нужно прописывать после имени сценария через пробел. В последних версиях сервера Windeows Script Host есть поддержка технологии Drag and Drop – возможность перетаскивания любого файла или папки на значок файла-скрипта, в этом случае, свойство WScript Arguments будет содержать коллекцию всех путей к папкам или файлам, которые мы перетащим на значок скрипта.

Как и в остальных коллекциях, у свойства Arguments WScript объекта есть два свойства –count и length, они эквивалентны и хранят в себе количество всех элементов коллекции, метод item принимает один числовой параметр – индекс элемента коллекции.

Для обработки коллекции мы можем использовать как специальные цикла (for each в vbscript) или объекты (объект Enumerator языка jscript), так и рядовые конструкции.

Хорошо, теперь давайте напишем простой пример на языке vbscript, который продемонстрирует работу свойства Arguments объекта WScript:

' ***********************************************************
' wscript Arguments
' Работа с аргументами
' arguments.vbs
'************************************************************
 
Option Explicit
 
Dim WshArguments, i, list
 
list=""
 
'Получаем доступ к коллекции через свойство Arguments
set WshArguments=WScript.Arguments
 
'Определяем, есть ли передача параметров
if WshArguments.count()=0 then
    MsgBox "Передайте сценарию аргументы"
else
    ' Производим перебор коллекции
    for i=0 to WshArguments.Count-1
        list = list & WshArguments(i) & vbCrLf
    next
    MsgBox list
End if

Тут мы видим, что переменная WshArguments хранит в себе коллекцию, доступ к которой осуществляется через свойство Arguments объекта WScript, ключевое словоset является обязательным. Далее идет проверка условия – если количество аргументов равно нулю, выводится сообщение о том, что пользователь должен передать параметры сценарию. В противном случае – мы используем цикл для перебора всех элементов коллекции и последующего вывода их значений. Помним, что если мы перетащим на значок сценария файлы или папки, то переменная list будет хранить список путей. Последнее не может не радовать, так как мы может использовать функции для работы с файлами и папками для обработки переданных документов как аргументов сценария.

Скачать архив с примерами

Хорошо, теперь давайте посмотрим на аналогичный пример, но уже на языке jscript:

// ***********************************************************
// wscript Arguments
// Работа с аргументами
// arguments.js
//************************************************************
 
var WshArguments, i, list="";
 
//Получаем доступ к коллекции через свойство Arguments
WshArguments=WScript.Arguments;
 
//Определяем, есть ли передача параметров
if (WshArguments.Length==0){
     WScript.Echo ("Передайте сценарию аргументы");
}else{
     //Производим перебор коллекции
     for (i=0; i<=WshArguments.length-1; i++){
                 list+= WshArguments(i) + "\n";
     }
     WScript.Echo (list);
}

Видим, что тут вместо свойства count мы использовали Length, они являются эквивалентными.

Хорошо, в этой статье мы рассмотрели свойство Arguments WScript объекта, которое позволяет получить доступ к коллекции. Коллекция эта хранит в себе все значения всех аргументов, переданных сценарию.

Оцените статью
Технологии программирования и ведение блога
Добавить комментарий