Как и в любом языке программирования, в Windows PowerShell есть возможность проверки условий на истинность. Это позволяет выбирать между различными действиями, в зависимости от условий.
За проверку истинности/ложности в языке отвечают логические операторы, а за действия в том или ином случае управляющие инструкции.
Логических операторов в PowerShell, в общем-то, не так уж и много.
Оператор | Значение | Пример использования (возвращается значение $True) |
-and | И | (1 -eq 1) -and (2 -eq 2) |
-or | ИЛИ | (1 -ne 2) -or (1 -eq 2) |
-not | НЕ | -not (1 -gt 2) |
! | НЕ | !(1 -gt) |
В примерах использованы операторы сравнения. Если Вы их подзабыли, можно подсмотреть их здесь.
Что касается управляющих инструкций, то это уже более широкая тема, на которой нужно остановиться подробнее.
Инструкция If … ElseIf … Else
If и Else знакомы всем, кто имеет хотя бы поверхностное понятие о языках программирования. В Windows PowerShell при помощи If можно выполнить код только в том случае, если условие возвращает значение $True. В противном случае будет выполняться код после Else. Можно поэтапно проверять несколько условий при помощи ElseIf.
В общем виде всё это выглядит так:
If (условие1)
{блок_кода1}
[ElseIf (условие2)
{блок_кода2}]
[Else
{блок_кода3}]
Сначала проверяется условие1, если оно верно (значение $True), то выполняется блок_кода1. Если условие1 ложно (значение $False), то проверяется условие2. Его истинность приведет к исполнению блока_кода2, а ложность — блока_кода3.
Таких промежуточных условий может быть много. Стоит отметить, что истинность любого условия приведет к завершению работы инструкции. Если же все условия окажутся ложными, то инструкция завершится после того, как отработает код после Else.
Посмотрим, как это работает. Запишем код следующего содержания:
$a=3 If ($a -eq 5) { 'a равно 5' } Else {'a не равно 5'}
Как видим, PowerShell сразу же вывел необходимое сообщение. Кроме того, этот пример показывает, что Windows PowerShell способен выполнять инструкции, состоящие из нескольких строк.
Цикл While
Перейдем к циклам. Цикл While является самым простым из доступных в PowerShell. В нем цикл будет выполняться до тех пор, пока условие имеет значение $True. В общем виде While выглядит так:
While (условие) {блок_команд}
Приведем пример такого цикла.
While ($b -ne 3)
{
$b++
$b
}
Думаю, здесь всё интуитивно понятно. При каждом наше переменная $b увеличивается на 1 до тех пор, пока не станет равной 3.
Цикл Do … While
В целом, это почти то же самое, но с одним отличием — условие проверяется не до блока команд, а после.
Do {блок_команд} While (условие)
$c=5
Do {$c++; $c} While ($c -ne 10)
Цикл For
Данный цикл является циклом со счетчиком. Такой цикл обычно применяется для выполнения определенных действий с каждым из элементов какого-либо массива. В общем виде цикл For выглядит так:
For (инициация; условие; повторение) {блок_команд}
инициация — это одна или несколько разделяемых запятыми команд, выполняемых перед началом цикла. Обычно она используется для присваивания начального значения переменной, которая будет основой для проверяемого условия.
условие — часть инструкции, которая может принимать значение $True или $False. Проверка условия проводится при каждой итерации цикла. При значении $True выполняется блок_команд.
повторение — одна или несколько разделяемых запятыми команд, чаще всего используемых для изменения переменной, проверяемой внутри условия. Эти команды выполняются после блока_команд и перед новой проверкой условия.
блок_команд — одна или несколько команды, выполняемых, когда значение условия равно $True.
Собственно, вот простой пример.
For ($d=7; $d -lt 12; $d++) {$d}
Пока значение переменной $d будет меньше 12, цикл For будет увеличивать её значение на 1 и выводить нам на экран.
В следующей части статьи продолжим разбирать управляющие инструкции в виде циклов.
Продолжение следует…
Статьи по теме: