s=s & "Версия WSH: " & WScript.Version & vbCrLf & vbCrLf
s=s & "Текущий каталог: "+ WshShell.CurrentDirectory & vbCrLf
s=s & "Путь к сценарию: " & WScript.ScriptFullName & vbCrLf
s=s & "Каталог сценария: " & GetScriptDir() & vbCrLf
s=s & "Имя сценария: " & WScript.ScriptName & vbCrLf
WScript.Echo s ' Выводим сформированные строки
'************* Конец *********************************************
Работа с параметрами командной строки сценария
Используя аргументы командной строки, в сценарии можно передавать различную информацию, скажем, те или иные переключатели или имена пользователей и рабочих станций. При задании аргумента можно указать либо только его значение, либо имя вместе со значением в следующем формате:
Как в имени аргумента, так и в его значении могут использоваться символы кириллицы.
Например, выполнив в командном окне строку
cscript Example.js /Имя:"Андрей Попов" /Возраст:30
или
cscript Example.js /Возраст:30 /Имя:"Андрей Попов"
мы передадим в сценарий Example.js два параметра: "Имя" со значением "Андрей Попов" и "Возраст" со значением "30". Значения этих параметров можно было передать и как безымянные параметры:
cscript Example.js "Андрей Попов" 30
Однако в последнем случае при задании безымянных аргументов будет важен порядок их указания в командной строке.
В WSH для обработки параметров командной строки служат следующие объекты-коллекции:
□ WshArguments
(содержит все параметры, как именные, так и безымянные);
□ WshNamed
(содержит только именные параметры);
□ WshUnnamed
(содержит только безымянные параметры).
Описание аргументов командной строки в сценариях можно задавать с помощью XML-элементов
,
и
Для доступа к коллекциям, содержащим аргументы командной строки, в сценарии сначала нужно создать переменную-экземпляр объекта WshArguments
; для этого используется свойство Arguments
объекта WScript
. Пример на языке JScript:
var objArgs=WScript.Arguments;
Для создания экземпляров коллекций WshNamed
и WshUnnamed
используются соответственно методы Named
и Unnamed
объекта WshArguments
. Например:
var objNamedArgs=objArgs.Named;
var objUnnamedArgs=objArgs.Unnamed;
Методы и свойства коллекций WshArguments
, WshNamed
и WshUnnamed
подробно описаны в
В листингах 2.21 и 2.22 приведены примеры сценариев на языках JScript и VBScript, которые выводят на экран общее количество параметров командной строки, количество именных и безымянных аргументов, а также значения каждой из этих групп параметров. Результат работы этих сценариев, запущенных в консольном режиме, представлен на рис. 2.8.
Рис. 2.8. Результат работы сценария Args.js
/********************************************************************/
/* Имя: Args.js */
/* Язык: JScript */
/* Описание: Работа с аргументами запущенного сценария */
/********************************************************************/
var
i,objArgs,s,objNamedArgs,objUnnamedArgs; //Объявляем переменные
objArgs = WScript.Arguments; //Создаем объект WshArguments
//Определяем общее количество аргументов