Изящная экономия времени: сила логических операторов PowerShell

Опубликовано: 16 Марта, 2023
Изящная экономия времени: сила логических операторов PowerShell

Если вы только изучаете сценарии PowerShell или используете сценарии PowerShell в течение достаточно долгого времени, вы, должно быть, поняли, что довольно сложно разработать сценарий PowerShell без включения операторов PowerShell. Эти операторы PowerShell играют важную роль в сценариях PowerShell в целом. Мы говорили и объясняли возможности использования операторов сравнения PowerShell в другой статье на TechGenix. В этой статье мы обсудим логические операторы PowerShell и способы их использования.

О логических операторах PowerShell

Логические операторы в PowerShell проверяют несколько условий, указанных в инструкции или выражении PowerShell. Например, проверка наличия на сервере двух файлов перед выполнением действия является логической операцией. Если вы хотите проверить, существуют ли на сервере две службы, прежде чем выполнять какое-либо действие, это также логическая операция. Другой пример: вы хотите запустить две службы Windows на компьютере только в том случае, если на компьютере существуют двоичные файлы этих служб. Теперь есть два способа проверить эти условия: 1) вы можете использовать несколько условий IF или 2) использовать логический оператор в инструкции PowerShell. Приведенные ниже операторы IF могут помочь вам проверить условия без использования логических операторов:

  • ЕСЛИ {Test-Path -Path «C:TempService1File.EXE»)
  • IF {Test-Path -Path «C:TempService2File.EXE»}

Как видно из приведенных выше операторов PowerShell, первое условие IF проверяет, существует ли файл C:TempService1File.EXE. Если это условие выполнено, выполняется следующий оператор IF (который должен проверить существование C:TempService2File.EXE). Без логических операторов ваш сценарий PowerShell может быть длинным. Другими словами, вам потребуется потратить много времени на написание нескольких строк кода. Теперь давайте взглянем на приведенный ниже оператор IF.

  • IF {Test-Path -Path «C:TempService1File.EXE» – AND Test-Path -Path «C:TempService2File.EXE»}

Как вы можете видеть в приведенном выше операторе IF, мы используем «-AND», который на самом деле является логическим оператором. «-И» указывает оператору IF проверить оба условия и выполнить « » только в том случае, если оба условия выполнены. Логические операторы очень удобны и сокращают накладные расходы при написании сценариев.

Подключение операторов PowerShell

Мы используем логические операторы, чтобы вы могли подключать операторы PowerShell, что, в свою очередь, позволяет вам использовать один оператор/выражение PowerShell для проверки нескольких условий. Например, приведенная ниже команда PowerShell использует оператор IF и может проверять два условия в одном операторе.
IF {$ThisVM -eq “TestVM” –and $ThisVMStatus –eq “Running”}
Как вы можете видеть в приведенной выше команде, мы проверяем, является ли виртуальная машина, хранящаяся в $ThisVM, «TestVM», И удостоверяемся, что виртуальная машина «Работает». Состояние виртуальной машины хранится в переменной $ThisVMStatus. Точно так же, прежде чем команда PowerShell проверит, является ли сервер контроллером домена, дисковое пространство на диске C: должно быть не менее 10 ГБ.
IF {$ThisServer -eq “Domain Controller” –and $DiskSpace –gt 10}
И если вы посмотрите на приведенную ниже команду PowerShell, она отличается от предыдущих команд PowerShell.
IF {$ThisServer -eq “Domain Controller” –OR $ThisServer –eq “Member Server”}
Приведенная выше команда PowerShell должна обеспечить выполнение только одного условия из двух. Если переменная $ThisServer содержит значение «Контроллер домена» или «Рядовой сервер», это означает, что условие выполнено.

Вы могли заметить использование «-И» и «-ИЛИ» в командах PowerShell. Они называются логическими операторами. «-И» используется, когда вам нужно убедиться, что все условия, указанные в операторе/выражении PowerShell, являются ИСТИННЫМИ. Принимая во внимание, что «-ИЛИ» используется, когда вам нужно убедиться, что только одно условие является ИСТИННЫМ из нескольких указанных условий. Хотя в PowerShell есть четыре логических оператора, большую часть времени вы будете работать с логическими операторами «-И» и «-ИЛИ».

Эта таблица содержит описание логических операторов.

Логический оператор Описание
"-а также" Используйте этот оператор, чтобы обеспечить выполнение всех условий, указанных в инструкции PowerShell.
"-или же" Используйте этот оператор, чтобы выполнить только одно условие из нескольких условий.

Вот несколько примеров того, как вы можете использовать логические операторы. Откройте командное окно PowerShell и выполните приведенные ниже команды PowerShell и посмотрите, совпадают ли результаты с тем, что вы видите здесь:

Команда 1: Результат будет «Истина», поскольку оба условия выполнены.
(1 -eq 1) -and (2 -eq 2)
Команда 2: Результат будет «Истина», даже если оба условия не выполнены, потому что мы используем логический оператор «-ИЛИ».
(1 -eq 1) -or (1 -eq 2)
Команда 3: Результат будет «Ложь», поскольку оба условия не выполнены.
(1 -eq 2) -and (1 -eq 2)

Изящные маленькие экономии времени

Теперь вы знаете немного больше о логических операторах PowerShell. Мы также предоставили несколько примеров использования этих логических операторов PowerShell. Их использование сэкономит вам много времени при написании оператора PowerShell с несколькими условиями.