Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Управляющие конструкции PowerShell
1.11.1. Условная конструкция If …ElseIf … Else В общем случае синтаксис инструкции If имеет вид: If (условие1) {блок_кода1} [ElseIf (условие2)] {блок_кода2}] [Else {блок_кода3}] При выполнении конструкции If проверяется истинность условного выражения условие1. Если условие1 имеет значение $True, то выполняется блок_кода1, после чего выполнение конструкции if завершается. Если условие1 имеет значение $False, проверяется истинность условного выражения условие2. Если условие2имеет значение $True, то выполняется блок_кода2 и выполнение конструкции if завершается. Если и условие1, и условие2 имеют значение $False, то выполняется блок_кода3 и выполнение конструкции if завершается. Примериспользования конструкции if в интерактивном режиме работы (рис. 36):
Рис. 36. Примериспользования конструкции if
В примере сначала переменной $a присваивается значение 10: $a=10 Затем значение переменной $a сравнивается с числом 15: If ($a –eq 15) Результатом является строка Значение $a не равно 15 Из приведенного примера видно, что в оболочке PS в интерактивном режиме можно выполнять конструкции, состоящие из нескольких строк, что полезно при отладке сценариев.
1.11.2. Циклы While и Do … While Самый простой из циклов PS – цикл While, в котором команды выполняются до тех пор, пока проверяемое условие имеет значение $True. Цикл While имеет следующий синтаксис: While (условие) {блок_команд} Цикл Do … While похож на цикл While, однако условие в нем проверяется не до блока команд, а после: Do {блок_команд} While (условие) Пример использования цикла Do … While(рис. 37):
Рис. 37. Пример использования цикла Do … While
Цикл For Обычно цикл For применяется для операций с массивами при выполнении определенных действий с каждым из его элементов. Синтаксис конструкции For: For (инициация; условие; повторение) {блок_команд}. Пример использования цикла For(рис. 38):
Рис. 38. Пример использования цикла For Цикл ForEach Инструкция ForEach позволяет последовательно перебирать элементы коллекций (последовательностей). Самый простой тип коллекции – массив. Особенность цикла ForEachсостоит в том, что его синтаксис и выполнение зависят от того, где расположена конструкция ForEach: вне конвейера команд или внутри конвейера. Если конструкция ForEach расположена вне конвейера команд, то в этом случае синтаксис цикла ForEach имеет вид: ForEach ($элемент in $коллекция) {блок_команд} При выполнении цикла ForEach автоматически создается переменная $элемент. Перед каждой итерацией цикла этой переменной присваивается значение очередного элемента в коллекции. В разделе блок_команд содержатся команды, выполняемые для каждого элемента коллекции. Приведенный ниже цикл ForEach отображает значения элементов массива $lettArr (рис. 39):
Рис. 39. Использование цикла ForEachвне конвейера команд
Конструкция ForEach может также использоваться совместно с командлетами, возвращающими коллекции элементов, например: $ln = 0; ForEach ($f in Dir *.txt) {$ln +=$f.length} В примере создается и обнуляется переменная $ln, затем в цикле ForEach с помощью командлета dir формируется коллекция файлов с расширением txt, находящихся в текущем каталоге. Конструкция ForEach перебирает все элементы этой коллекции и на каждом шаге к текущему файлу выполняется обращение с помощью переменной $f. В блоке команд цикла ForEach к текущему значению переменной $ln добавляется значение свойства Length (размер файла) переменной $f. В результате выполнения цикла в переменной $ln будет получен суммарный размер файлов в текущем каталоге, которые имеют расширение txt. Если конструкция ForEach используется внутри конвейера команд, то PS использует псевдоним ForEach, соответствующий командлету ForEach-Object. В этом случае фактически выполняется командлет ForEach-Object и не требуется часть конструкции ($элемент in $коллекция), так как в блоке команд обрабатываются элементы коллекции, которые предоставляет предыдущая команда конвейера. Синтаксис конструкции ForEach при использовании внутри конвейера команд имеет вид: команда | ForEach {блок_команд} Рассмотренный выше пример подсчета суммарного размера файлов из текущего каталога для данного варианта конструкции ForEach примет следующий вид: $ln = 0; dir *.txt | ForEach{ $ln +=$_.Length} В приведенном примере специальная переменная $_ используется для обращения к текущему объекту конвейера и извлечения его свойств. |
||
Последнее изменение этой страницы: 2018-06-01; просмотров: 319. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |