Конструкция if/then является обычной для кода PowerShell, однако вы знаете ли, что существует другой способ, называемый тернарным оператором, который позволяет сделать вашу конструкцию if/then более лаконичной? Давайте узнаем, как создать собственный тернарный оператор в PowerShell.
За счет уменьшения читаемости, как говорят некоторые, тернарный оператор создает условную логику, которая является более лаконичной, простой и содержит меньше кода. Они правы, но так хорошо иметь это тернарное поведение в PowerShell!
Если вы не знакомы с тернарным оператором, это, по сути, использование хэш-таблицы или аналогичной конструкции для принятия условного решения на основе заданных критериев.
If/Then в PowerShell
Чтобы объяснить тернарный оператор Powershell, давайте сначала рассмотрим пример конструкции if/then.
С первого взгляда вы могли бы подумать, что в этом нет ничего плохого. Фактически, на самом деле нет, но это условие можно проверить так же легко в одну строку (не превышая мой личный лимит в 115 символов).
Теперь создайте хэш-таблицу PowerShell с двумя ключами: $true
и $false
. Затем задайте значения, которые вы хотите отобразить, если выполнено условие, которое вы определяете.
Затем определите условие ($CarColor равно Blue
) и проверьте, выполняется ли это условие с помощью $CarColor -eq 'Blue'
.
Теперь используйте условие ($CarColor -eq 'Blue'
) в качестве ключа в этой хеш-таблице. Это выполняет проверку, а затем использует результат для поиска ключа в хеш-таблице.
Завершение работы с оператором тернарным оператором PowerShell

Всего одна строка! Разве это не намного более лаконично? Вместо использования оператора if/then я использую хеш-таблицу и выполняю поиск на основе того, равен ли $CarColor
значению Blue
или нет. Полученный индекс затем выводится в консоль. Если вы хотите использовать этот метод, это так же просто, как заполнение этих пропусков:
Вы также можете добавить в хеш-таблицу не только $true
и $false
. Вы можете добавить любое количество условий и проверять их. Это простой способ заменить длинные операторы if/then или операторы switch.
Теперь у вас есть собственный тернарный оператор PowerShell, которым вы можете начать пользоваться в своих скриптах уже сегодня!