Powershell - 同时声明

时间:2015-07-22 19:15:39

标签: powershell while-loop

当我在读取主机中输入“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: "
}

2 个答案:

答案 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")