//Определяем остальные параметры

s+='Путь к серверу: '+WScript.FullName+' ';

s+='Каталог сервера: '+WScript.Path+' ';

s+='Версия WSH: '+WScript.Version+' ';

s+='Текущий каталог: '+ WshShell.CurrentDirectory+' ';

s+='Путь к сценарию: '+WScript.ScriptFullName+' ';

s+='Каталог сценария: '+GetScriptDir()+' ';

s+='Имя сценария: '+WScript.ScriptName+' ';

WScript.Echo(s);  //Выводим сформированные строки

/*************  Конец *********************************************/

Листинг 2.20. Вывод свойств WSH и запущенного сценария (VBScript)

'*******************************************************************

' Имя: PropScript.vbs

' Язык: VBScript

' Описание: Вывод свойств запущенного сценария

'*******************************************************************

Option Explicit

' Проверка режима, в котором запущен сценарий

Function IsCScript()

 IsCScript=('c'=Mid(LCase(WScript.FullName),Len(WScript.FullName)-10,1))

End Function

' Возвращает каталог, содержащий запущенный сценарий

Function GetScriptDir()

 Dim ScriptDir

 ScriptDir = WScript.ScriptFullName

 ScriptDir = Left(ScriptDir, InstrRev(ScriptDir,'')-1)

 GetScriptDir=ScriptDir

End Function

'*******************  Начало  **********************************/

Dim WshShell,s   ' Объявляем переменные

' Создаем объект WshShell

Set WshShell=WScript.CreateObject('WScript.Shell')

s='                   Свойства запущенного сценария:' & vbCrLf & vbCrLf

' Проверяем, в каком режиме был запущен сценарий

If IsCScript() Then

 s=s & 'Запущен в консольном режиме' & vbCrLf

Else

 s=s & 'Запущен в графическом режиме' & vbCrLf

End If

' Определяем остальные параметры

s=s & 'Путь к серверу: ' & WScript.FullName & vbCrLf

s=s & 'Каталог сервера: ' & WScript.Path & vbCrLf

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-элементов <runtime>, <named> и <unnamed> (см. главу 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.

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату