我尝试使用while
循环创建菜单。我希望菜单运行直到用户按下" n"或" N"。
$MenuChoice
while ($MenuChoice -ne "n" -or $MenuChoice -ne "N") {
Write-Host "Run again? y/n "
Read-Host $MenuChoice
}
问题在于,无论我按下" N"或" Y"。
我是否需要为$MenuChoice
声明一个值?
答案 0 :(得分:2)
您需要将Read-Host
的输出分配到$MenuChoice
:
# Initial value (in case this is run more than once)
$MenuChoice = $null
# This comparison is not case-sensitive
while ($MenuChoice -ne 'n') { $MenuChoice = Read-Host 'Run again? [y/n]' }
答案 1 :(得分:0)
另一个以Chris Dent's answer为基础的替代方案,使用do {} while ()
循环:
do {
$MenuChoice = Read-Host 'Run again? [y/n]'
} while ($MenuChoice -ine 'n')
(同样使用-ine
明确不区分大小写的比较,即使-ne
默认情况下不区分大小写)