如果输入错误,PowerShell将获得相同的读取主机

如果输入错误,PowerShell将获得相同的读取主机,powershell,Powershell,如果用户输入了无效的输入,我很难获得相同的读取主机。 我尝试过许多不同的解决方案,但都没能奏效 我的示例是一个简单的yes/no脚本。但如果不是ja/nej,我希望它再次给我读主机。我也可以得到一个更通用的解决方案,比如如果输入托盘再次出现错误 Write-Host "Er du født før 1. januar 2000?"; $Readhost = Read-Host "ja/nej" switch ($Readhost) { ja {write-host "Så er du over

如果用户输入了无效的输入,我很难获得相同的读取主机。 我尝试过许多不同的解决方案,但都没能奏效

我的示例是一个简单的yes/no脚本。但如果不是ja/nej,我希望它再次给我读主机。我也可以得到一个更通用的解决方案,比如如果输入托盘再次出现错误

Write-Host "Er du født før 1. januar 2000?";
$Readhost = Read-Host "ja/nej"
switch ($Readhost)
{
ja {write-host "Så er du over 18 år gammel"}
nej {write-host "Så er du yngere end 18 år"}
default {write-host ”Svar på spørgsmålet!”}
} 

您需要一个
while
循环

Write-Host "Er du født før 1. januar 2000?";
$Readhost = ""

while ($Readhost -notin "ja", "nej") {
    $Readhost = Read-Host "ja/nej"

    switch($Readhost) {
        ja {write-host "Så er du over 18 år gammel"}
        nej {write-host "Så er du yngere end 18 år"}
    } 
}

您需要一个
while
循环

Write-Host "Er du født før 1. januar 2000?";
$Readhost = ""

while ($Readhost -notin "ja", "nej") {
    $Readhost = Read-Host "ja/nej"

    switch($Readhost) {
        ja {write-host "Så er du over 18 år gammel"}
        nej {write-host "Så er du yngere end 18 år"}
    } 
}

如果你有一组预定义的选项,比如“是/否”,那么考虑使用菜单来避免无效的输入。例如:

$selectedFruit = $host.UI.PromptForChoice('Select a Fruit', "Which fruit is your favorite?", ('&Apple', '&Melon', 'Man&go','&Quit'), 0)

switch($selectedFruit)
{
    0 {Write-Host "You chose 'Apple'"}
    1 {Write-Host "You chose 'Melon'"}
    2 {Write-Host "You chose 'Mango'"}
}
在控制台中,这将生成如下菜单:


如您所见,如果用户输入的值不正确,它将继续提示用户(或选择
Quit
选项)。如果您不想要默认值,请在<代码> > PROPTPFRESUT> <代码> > <代码> > 1代码> ./P> < P > >如果您有一组预定义的选项,比如“是/否”,那么请考虑使用菜单来避免无效输入。例如:

$selectedFruit = $host.UI.PromptForChoice('Select a Fruit', "Which fruit is your favorite?", ('&Apple', '&Melon', 'Man&go','&Quit'), 0)

switch($selectedFruit)
{
    0 {Write-Host "You chose 'Apple'"}
    1 {Write-Host "You chose 'Melon'"}
    2 {Write-Host "You chose 'Mango'"}
}
在控制台中,这将生成如下菜单:


如您所见,如果用户输入的值不正确,它将继续提示用户(或选择
Quit
选项)。如果不需要默认值,请将
PromptForChoice
中的
0
更改为
-1

我会保留默认值以通知用户再次询问的原因。我会保留默认值以通知用户再次询问的原因。