KnigaRead.com/

Андрей Попов - Windows Script Host для Windows 2000/XP

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Андрей Попов, "Windows Script Host для Windows 2000/XP" бесплатно, без регистрации.
Перейти на страницу:

s+="nРменных аргументов: "+objNamedArgs.length+"n";

//Проверяем, существует ли аргумент /РРјСЏ:

if (objNamedArgs.Exists("РРјСЏ")) s+=objNamedArgs("РРјСЏ")+"n";

//Проверяем, существует ли аргумент /Comp:

if (objNamedArgs.Exists("Comp")) s+=objNamedArgs("Comp")+"n";

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

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

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

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

' РРјСЏ: Args.vbs

' Язык: VBScript

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

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

Option Explicit

Dim i,Arg,objArgs,s,objNamedArgs,objUnnamedArgs  ' Объявляем переменные

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

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

s="Всего аргументов: " & objArgs.Count() & vbCrLf

For Each Arg In objArgs

 s=s & Arg & vbCrLf  ' Формируем строки со значениями аргументов

Next

Set objUnnamedArgs=objArgs.Unnamed  ' Создаем объект WshUnnamed

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

s=s & vbCrLf & "Безымянных аргументов: " & objUnnamedArgs.length & vbCrLf

For Each Arg In objUnnamedArgs

 ' Формируем строки со значениями безымянных аргументов

В s=s & Arg & vbCrLf

Next

Set objNamedArgs=objArgs.Named  ' Создаем объект WshNamed

' Определяем количество именных аргументов

s=s & vbCrLf & "Рменных аргументов: " & objNamedArgs.Length & vbCrLf

' Проверяем, существует ли аргумент /РРјСЏ:

If objNamedArgs.Exists("РРјСЏ") Then

В s=s & objNamedArgs("РРјСЏ") & vbCrLf

End If

' Проверяем, существует ли аргумент /Comp:

If objNamedArgs.Exists("Comp") Then

В s=s & objNamedArgs("Comp") & vbCrLf

End If

WScript.Echo s   ' Выводим сформированные строки

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

Выход из сценария с определенным кодом завершения

Любое приложение при завершении своей работы может возвращать операционной системе целое число — код выхода (обычно ненулевое значение этого кода указывает на то, что выполнение программы прервалось в силу той или иной ошибки).

Замечание

Сама операционная система Windows не проверяет код завершения приложений.

В WSH код выхода из сценария задается с помощью параметра метода Quit объекта WScript. В листингах 2.23 и 2.24 приведены сценарии, в которых код завершения выбирается в зависимости от того, какая кнопка нажата в диалоговом окне (рис. 2.9): кнопке OK соответствует код 1, кнопке Отмена — код 0.

Рис. 2.9. Диалоговое окно, создаваемое в сценарии Quit.js


Листинг 2.23. Выход из сценария с заданным кодом завершения (JScript)

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

/* РРјСЏ: Quit.jsВ В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В  */

/* Язык: JScript                                                   */

/* Описание: Выход из сценария с заданным кодом завершения         */

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

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

var vbOkCancel=1,vbOk=1;В  //Рнициализируем константы для диалоговых РѕРєРѕРЅ

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

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

Text="Выберите кнопку для завершения сценария";

Title="Диалоговое окно";

//Выводим диалоговое окно на экран

Res=WshShell.Popup(Text,0,Title,vbOkCancel);

if (Res==vbOk) WScript.Quit(1);

else WScript.Quit(0);

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

Листинr 2.24. Выход из сценария с заданным кодом завершения (VBScript)

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

' РРјСЏ: Quit.vbs

' Язык: VBScript

' Описание: Выход из сценария с заданным кодом завершения

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

Option Explicit

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

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

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

Text="Выберите кнопку для завершения сценария"

Title="Диалоговое окно"

' Выводим диалоговое окно на экран

Res=WshShell.Popup(Text,0,Title,vbOkCancel)

If Res=1 Then

В WScript.Quit 1

Else

В WScript.Quit 0

End If

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

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

Пример подобного ВАТ-файла приведен в листинге 2.25. Здесь сценарий Quit.js запускается с помощью команды START с ключом /WAIT, указывающим на то, что выполнение ВАТ-файла должно быть приостановлено до окончания работы Quit.js. После этого, если код завершения pавен 1 (в диалоговом окне сценария была нажата кнопка OK), происходит переход к метке :Ok и выдача с помощью команды ECHO соответствующего сообщения на экран.

Замечание

Для корректного отображения на экране символов кириллицы в BAT-файлах должна использоваться DOS-кодировка.

Если же код завершения сценария Quit.js был равен 0 (в диалоговом окне была нажата кнопка Отмена), то управление перейдет к строке

ECHO Для выхода из Quit.js была нажата кнопка Отмена

Листинг 2.25. Анализ кода выхода сценария Quit.js (Check.bat)

@ЕСНО OFF

REM **************************************************************

REM РРјСЏ: check.bat

REM Язык: BAT-файл

REM РљРѕРґРёСЂРѕРІРєР°: DOS

REM Описание: Определение кода завершения для сценария Quit.js

REM **************************************************************

@ЕСНO OFF

ECHO Запускаем сценарий Quit.js...

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*