Выход из сценария с определенным кодом завершения
Стр 1 из 3Следующая ⇒ Занятие 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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|