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   ' Выводим сформированные строки

'*************  Конец *********************************************

<p>Работа с параметрами командной строки сценария </p>

Используя аргументы командной строки, в сценарии можно передавать различную информацию, скажем, те или иные переключатели или имена пользователей и рабочих станций. При задании аргумента можно указать либо только его значение, либо имя вместе со значением в следующем формате: "Имя_аргумента:Значение".

Замечание

Как в имени аргумента, так и в его значении могут использоваться символы кириллицы.

Например, выполнив в командном окне строку

cscript Example.js /Имя:"Андрей Попов" /Возраст:30

или

cscript Example.js /Возраст:30 /Имя:"Андрей Попов"

мы передадим в сценарий Example.js два параметра: "Имя" со значением "Андрей Попов" и "Возраст" со значением "30". Значения этих параметров можно было передать и как безымянные параметры:

cscript Example.js "Андрей Попов" 30

Однако в последнем случае при задании безымянных аргументов будет важен порядок их указания в командной строке.

В WSH для обработки параметров командной строки служат следующие объекты-коллекции:

WshArguments (содержит все параметры, как именные, так и безымянные);

WshNamed (содержит только именные параметры);

WshUnnamed (содержит только безымянные параметры).

Замечание

Описание аргументов командной строки в сценариях можно задавать с помощью XML-элементов , и (см. главу 3).

Для доступа к коллекциям, содержащим аргументы командной строки, в сценарии сначала нужно создать переменную-экземпляр объекта WshArguments; для этого используется свойство Arguments объекта WScript. Пример на языке JScript:

var objArgs=WScript.Arguments;

Для создания экземпляров коллекций WshNamed и WshUnnamed используются соответственно методы Named и Unnamed объекта WshArguments. Например:

var objNamedArgs=objArgs.Named;

var objUnnamedArgs=objArgs.Unnamed;

Методы и свойства коллекций WshArguments, WshNamed и WshUnnamed подробно описаны в главе 1. Отметим здесь только, что для корректной работы с параметрами командной строки, имена которых содержат символы кириллицы, эти имена в сценарии должны быть написаны в кодировке Windows.

В листингах 2.21 и 2.22 приведены примеры сценариев на языках JScript и VBScript, которые выводят на экран общее количество параметров командной строки, количество именных и безымянных аргументов, а также значения каждой из этих групп параметров. Результат работы этих сценариев, запущенных в консольном режиме, представлен на рис. 2.8.

Рис. 2.8. Результат работы сценария Args.js

Листинг 2.21. Доступ к параметрам командной строки запущенного сценария (JScript)

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

/* Имя: Args.js                                                     */

/* Язык: JScript                                                    */

/* Описание: Работа с аргументами запущенного сценария              */

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

var

 i,objArgs,s,objNamedArgs,objUnnamedArgs;  //Объявляем переменные

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

//Определяем общее количество аргументов

Перейти на страницу:

Похожие книги