//Определяем остальные параметры
s+='Путь к серверу: '+WScript.FullName+'
';
s+='Каталог сервера: '+WScript.Path+'
';
s+='Версия WSH: '+WScript.Version+'
';
s+='Текущий каталог: '+ WshShell.CurrentDirectory+'
';
s+='Путь к сценарию: '+WScript.ScriptFullName+'
';
s+='Каталог сценария: '+GetScriptDir()+'
';
s+='Имя сценария: '+WScript.ScriptName+'
';
WScript.Echo(s); //Выводим сформированные строки
/************* Конец *********************************************/
'*******************************************************************
' Имя: 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>
Для доступа к коллекциям, содержащим аргументы командной строки, в сценарии сначала нужно создать переменную-экземпляр объекта 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.
