当我在读取主机中输入“A”或“PTR”时,有谁知道为什么这个while语句不会返回TRUE?
$lookupDecision = Read-Host "Do you want results for A or PTR: "
while( $lookupDecision -ne "A" -or $lookupDecision -ne "PTR" ) {
$lookupDecision = Read-Host "Invalid input! Enter A or PTR: "
}
答案 0 :(得分:4)
此声明 返回TRUE,无论您输入什么内容都会这样做。如果您输入A
,则结果为TRUE,因为A
不等于PTR
。如果您输入PTR
,则结果为TRUE,因为它不等于A
。其他任何事情都不等于他们两个。
这里的问题是你希望它最终返回FALSE,所以你可以通过while循环移动到下一段代码。为此,您需要-and
而不是-or
。
$lookupDecision = Read-Host "Do you want results for A or PTR: "
while( $lookupDecision -ne "A" -and $lookupDecision -ne "PTR" ) {
$lookupDecision = Read-Host "Invalid input! Enter A or PTR: "
}
答案 1 :(得分:0)
提醒用户输入的时候真的很棒
do {
$lookupDecision = Read-Host "Do you want results for A or PTR: "
} while ($lookupDecision -ne "A" -And $lookupDecision -ne "PTR")