Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

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




Занятие 4.

 

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

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

"/ Имя_аргумента\3начение".

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

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

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

или

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

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

объекты - коллекции:

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

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

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

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

WshArguments; Для этого используетсясвойство Arguments объекта WScript.

Пример на языке JScript:

var objArgs=WScript.Arguments;

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

var objNamedArgs=obj Args.Named;

var obj UnnamedArgs=objArgs.Unnamed;

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

 

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

(JScript)

/* Имя: Args.js */

/* Язык: JScript */

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

var

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

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

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

s="Bcero аргументов: "+objArgs.Count () +"\n";

for (i=0; i<=objArgs.Count()-1; i++)

s+=objArgs(i)+"\n"; //Формируем строки со значениями аргументов

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

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

s+="\пБезымянных аргументов: "+objUnnamedArgs.length+"\n";

for (i=0; i<=objUnnamedArgs.length-1; i++)

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

s+=objUnnamedArgs(i)+"\n";

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

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

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

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

if (objNamedArgs.Exists("Имя"))

s+=objNamedArgs("Имя")+"\n";

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

if (objNamedArgs.Exists("Сотр"))

s+=objNamedArgs("Сотр")+"\n";

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

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

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

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

(VBScript)

 

‘ Имя: Args.vbs

‘ Язык: VBScript

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

Option Explicit

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

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

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

S = "Bcero аргументов: " & 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 ‘ Выводим сформированные строки

‘ ************* Конец********************************************

 

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

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

В WSH код выхода из сценария задается с помощью параметра метода Quit объекта wscript. В листингах 4.23 и 4.24 приведены сценарии, в которых код завершения выбирается в зависимости от того, какая кнопка нажата

кнопке ОК соответствует код 1, кнопке Отмена — код 0.

 

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

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

/* Имя: Quit.js */

/* Язык: JScript */

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

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

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

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

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

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

Text="Bы6epитe кнопку для завершения сценария";

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

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

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

if (Res==vbOk)

WScript.Quit(1);

else

WScript.Quit(0);

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

 

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

' Имя: Quit.vbs

' Язык: VBScript

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

Option Explicit

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

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

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

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

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

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

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

If Res=1 Then

WScript.Quit 1

Else

WScript.Quit 0

End If

‘************* Конец *********************************************

 

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

Пример подобного ВАТ-файла приведен в листинге 4.25. Здесь сценарий Quit.js запускается с помощью команды start с ключом /wait, указывающим на то, что выполнение ВАТ-файла должно быть приостановлено до окончания работы Quit.js. После этого, если код завершения равен 1 (в диалоговом окне сценария была нажата кнопка ОК), происходит переход к метке:Ок и выдача с помощью команды echo соответствующего сообщения на экран.

 

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

 

©ECHO OFF

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

REM Имя: check.bat

REM Язык: ВАТ-файл

REM Кодировка: DOS

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

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

©ECHO OFF

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

START /W Quit.js

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

IF ERRORLEVEL 1 GOTO:Ok

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

GOTO:end

:0k

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

:end

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...