Есть ли более простой способ указать условие -or
? Например, if ($returnValue -eq 0 -or $returnValue -eq 5)
. Я бы предпочел написать что-то вроде if ($returnValue -eq 0 -or 5)
, чтобы проверить два возможных значения $ returnValue. Конечно, это делает что-то еще. Хорошо, просто подумал о принуждении значения к символьному типу с использованием регулярного выражения: if ($returnValue -match '0|5')
Итак, теперь, когда я ответил на мой вопрос, какие-либо другие идеи?Простой синергетический синтаксис PowerShell OR
2
A
ответ
4
Я хотел бы использовать -contains
или -in
где это уместно:
if ((0,5) -contains $returnValue)
или
if ($returnValue -in (0,5))
-in
был добавлен в PowerShell v3.
Я сильно препятствую регулярному выражению «решение», потому что он может иметь непреднамеренные побочные эффекты и уменьшает ясность. Например, 51 -match '0|5'
- $true
.
Рассматривает только форматирование if
заявления на нескольких строках:
if (
$returnValue -eq 0 -or
$returnValue -eq 5
)
Хотя я до сих пор люблю -contains
и -in
за то, что вы пытаетесь достичь.
$validVals = @(
0,
5,
17
)
if ($validVals -contains $returnVal) {
# ...
}
if ($returnVal -in $validVals) {
# ...
}
+0
Я согласен с тем, что решение регулярного выражения не подходит для этого. Благодарю. – Roman
Упрощенный или более тупой? –