Что такое синтаксис PowerShell для нескольких значений в операторе switch?

Я в основном хочу сделать это:

switch($someString.ToLower())
{
    "y", "yes" { "You entered Yes." }
    default { "You entered No." }
}
67
задан Peter Mortensen 25 December 2018 в 23:03
поделиться

3 ответа

switch($someString.ToLower()) 
{ 
    {($_ -eq "y") -or ($_ -eq "yes")} { "You entered Yes." } 
    default { "You entered No." } 
}
79
ответ дан 24 November 2019 в 14:29
поделиться

Вы должны иметь возможность использовать подстановочные знаки для своих значений:

switch -wildcard ($someString.ToLower())
{
    "y*" { "You entered Yes." }
    default { "You entered No." }
}

Также разрешены регулярные выражения.

switch -regex ($someString.ToLower())
{
    "y(es)?" { "You entered Yes." }
    default { "You entered No." }
}

Документация по переключателю PowerShell: Использование оператора Switch

42
ответ дан 24 November 2019 в 14:29
поделиться

Поддерживает ввод y|ye|yes и нечувствителен к регистру.

switch -regex ($someString.ToLower()) {
        "^y(es?)?$" {
            "You entered Yes." 
        }
        default { "You entered No." }
}
5
ответ дан 24 November 2019 в 14:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: