Чтение онлайн

ЖАНРЫ

Windows Script Host для Windows 2000/XP

Попов Андрей Викторович

Шрифт:

имя каталога, в котором находится приложение-сервер;

номер используемой версии WSH;

полный путь к исполняемому сценарию;

имя исполняемого сценария.

Для проверки режима, в котором был запущен сценарий, можно предложить функцию

IsCScript
(ниже приведена реализация этой функции на языке JScript), которая будет возвращать
true
, если использовался хост cscript.exe (консольный режим), и
false
, если использовался wscript.exe (графический режим):

function IsCScript {

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

 return ("с"== WScript.FullName.toLowerCase.charAt(WScript.FullName.length - 11));

}

Как мы видим, вся работа функции

IsCScript
состоит в определении того, с какой буквы начинается имя приложения-сервера ("с" для cscript.exe или "w" для wscript.exe).

Полный путь к текущему каталогу, т.е. к каталогу, из которого был запущен сценарий, хранится в свойстве

CurrentDirectory
объекта
WshShell
.

Если сценарий был запущен не из того каталога, в котором находится сам файл со сценарием, то текущий каталог не будет совпадать с каталогом сценария. Для того чтобы получить путь к каталогу сценария, нужно выделить этот путь из свойства

WScript.ScriptFullName
, содержащему полный путь к выполняемому сценарию (включая имя файла). На языке JScript это можно реализовать с помощью функции
GetScriptDir
следующего содержания:

function GetScriptDir {

 var ScriptDir;

 ScriptDir = WScript.ScriptFullName;

 ScriptDir = ScriptDir.substring(0, ScriptDir.lastIndexOf("\\"));

 return ScriptDir;

}

Полные тексты сценариев на языках JScript (PropScript.js) и VBScript (PropScript.vbs), выводящих на экран сведения о свойства WSH и запущенного сценария, приведены в листингах 2.19 и 2.20 соответственно; результат работы сценария PropScript.js представлен на рис. 2.7.

Рис. 2.7. Результаты выполнения сценария PropScript.js в графическом режиме

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

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

/* Имя: PropScript.js */

/* Язык: JScript */

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

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

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

function IsCScript {

 return ("c"== WScript.FullName.toLowerCase.charAt(WScript.FullName.length - 11));

}

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

function GetScriptDir {

 var ScriptDir;

 ScriptDir = WScript.ScriptFullName;

 ScriptDir = ScriptDir.substring(0, ScriptDir.lastIndexOf("\\"));

 return ScriptDir;

}

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

var WshShell,s; //Объявляем переменные

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

WshShell=WScript.CreateObject("WScript.Shell");

s=" Свойства запущенного сценария:\n\n";

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

if (IsCScript) s+="Запущен в консольном режиме\n";

else s+="Запущен в графическом режиме\n";

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

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

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

s+="Версия WSH: "+WScript.Version+"\n\n";

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

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

s+="Каталог сценария: "+GetScriptDir+"\n";

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

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 ' Объявляем переменные

Поделиться с друзьями: