【发布时间】:2018-09-16 06:20:28
【问题描述】:
大家好,我仍在尝试找出如何以正确的方式为我的脚本使用循环。
我现在唯一的问题是,当切换开始并且我没有选择任何选项(1,2 或 Q)时,它会跳转到写入“循环完成”的第二部分。
当循环完成一次时我遇到了同样的问题,我被问到是否要使用 R 或 Q 重复或退出。
有没有办法避免这种情况?如果我不使用 1,2,R 或 Q,可能会导致我返回菜单的 break 或 else 命令?
function Show-Menu
{
([string]$Title = '? ')
cls
Write-Host "================ $Title ================"
Write-Host "1: Wählen Sie '1' für $F1"
Write-Host "2: Wählen Sie '2' für $F2"
Write-Host "Q: Wählen Sie 'Q' zum Beenden."
}
$F1 = "Test1"
$F2 = "Test2"
do
{
Show-Menu
$input = Read-Host "Bitte wählen Sie aus."
switch ($input)
{
'1' {
$vorname = Read-Host "Bitte Vornamen eingeben:"
$name = Read-Host "Bitte Namen eingeben:"
$short = Read-Host "Bitte Kürzel eingeben:"
}
'2' {
$short = Read-Host "Bitte Benutzernamen eingeben:"
$info = Read-Host -Prompt 'Bitte Beschreibung eingeben.'
}
'q' {
return
}
}
do
{
Write-Host "Loop done"
Clear-Variable -Name vorname,short,name,info
$response = Read-Host "Drücken Sie R zum Wieder holen, Q zum Beenden"
if ($response -eq "Q")
{
exit
}
} until ($response -eq "R")
} until ($input -eq 'q')
【问题讨论】:
标签: powershell loops switch-statement break