Объект WshArguments
Объект WshArguments содержит коллекцию всех параметров командной строки запущенного сценария или ярлыка Windows. Этот объект можно создать только с помощью свойства Arguments объектов WScript и WshShortcut.
С помощью объекта WshArguments можно также выделять и отдельно обрабатывать аргументы сценария, у которых имеются имена (например, /Name:Andrey ) и безымянные аргументы. Ясно, что использование именных параметров более удобно, так как в этом случае нет необходимости запоминать, в каком порядке должны быть записаны параметры при запуске того или иного сценария.
Для доступа к именным и безымянным аргументам используются соответственно два специальных свойства объекта WshArguments: Named и Unnamed. Свойство Named содержит ссылку на коллекцию WshNamed, свойство Unnamed — на коллекцию WshUnnamed.
Таким образом, обрабатывать параметры командной строки запущенного сценария можно тремя способами:
· просматривать полный набор всех параметров (как именных, так и безымянных) с помощью коллекции WshArguments ;
· выделить только те параметры, у которых есть имена (именные параметры) с помощью коллекции WshNamed ;
· выделить только те параметры, у которых нет имен (безымянные параметры) с помощью коллекции WshUnnamed.
В листинге 5.9 приведен пример сценария, в котором на экран выводятся общее количество параметров командной строки, количество именных и безымянных аргументов, а также значения каждой из этих групп параметров.
'********************************************************************
' Имя: Args.vbs
' Язык: VBScript
' Описание: Работа с аргументами запущенного сценария
'********************************************************************
Option Explicit
Dim i,Arg,objArgs,s,objNamedArgs,objUnnamedArgs ' Объявляем переменные
Set objArgs = WScript.Arguments ' Создаем объект WshArguments
' Определяем общее количество аргументов
s="Всего аргументов: " & objArgs.Count() & vbCrLf
For Each Arg In objArgs
s=s & Arg & vbCrLf ' Формируем строки со значениями аргументов
Next
Set objUnnamedArgs=objArgs.Unnamed ' Создаем объект WshUnnamed
' Определяем количество безымянных аргументов
s=s & vbCrLf & "Безымянных аргументов: " & objUnnamedArgs.length & vbCrLf
For Each Arg In objUnnamedArgs
' Формируем строки со значениями безымянных аргументов
s=s & Arg & vbCrLf
Next
Set objNamedArgs=objArgs.Named ' Создаем объект WshNamed
' Определяем количество именных аргументов
s=s & vbCrLf & "Именных аргументов: " & objNamedArgs.Length & vbCrLf
' Проверяем, существует ли аргумент /Имя:
If objNamedArgs.Exists("Имя") Then
s=s & objNamedArgs("Имя") & vbCrLf
End If
' Проверяем, существует ли аргумент /Comp:
If objNamedArgs.Exists("Comp") Then
s=s & objNamedArgs("Comp") & vbCrLf
End If
WScript.Echo s ' Выводим сформированные строки
'************* Конец *********************************************
Листинг 5.9. Доступ к параметрам командной строки запущенного сценария (VBScript)
Дата добавления: 2018-03-01; просмотров: 376;