IF 多个条件 PowerShell
IF multiple conditions PowerShell
为什么总是 returns 我“输入无效...”?
$var = Read-Host -prompt "Insert a number from 1 to 6"
if (($var -ne 1)-or ($var -ne 2)-or ($var -ne 3)-or ($var -ne 4)-or ($var -ne 5)-or ($var -ne 6)){
Write-Host "Non valid input..."
pause; exit
} else {
Write-Host "OK."
pause; exit
}
因为您正在使用 -or
运算符来查看单个值。假设您输入 5。它不等于 1,因此触发块并将 Write-Host "Non valid input..."
写入控制台。如果您正在检查某物是否在范围内,请检查范围的高端和低端,例如:
if ( ($var -lt 1) -or ($var -gt 6) ){
Write-Host "Non valid input..."
pause
}
else {
Write-Host "OK."
pause
}
您还可以将 $Var
约束为并且 [Int]
为:
[Int]$Var = Read-Host -prompt "Insert a number from 1 to 6"
这将有助于将输入限制为整数...
但是,这种类型的东西通常包含在一个循环中,因此如果进行了不可接受的输入,则会出现重新提示。
试试这个:
$ExcludeValues=@(1, 3, 5, 6)
$var = Read-Host -prompt "Insert a number from 1 to 6"
if ($var -in $ExcludeValues)
{
"Non valid input..."
}
else
{
"OK"
}
为什么总是 returns 我“输入无效...”?
$var = Read-Host -prompt "Insert a number from 1 to 6"
if (($var -ne 1)-or ($var -ne 2)-or ($var -ne 3)-or ($var -ne 4)-or ($var -ne 5)-or ($var -ne 6)){
Write-Host "Non valid input..."
pause; exit
} else {
Write-Host "OK."
pause; exit
}
因为您正在使用 -or
运算符来查看单个值。假设您输入 5。它不等于 1,因此触发块并将 Write-Host "Non valid input..."
写入控制台。如果您正在检查某物是否在范围内,请检查范围的高端和低端,例如:
if ( ($var -lt 1) -or ($var -gt 6) ){
Write-Host "Non valid input..."
pause
}
else {
Write-Host "OK."
pause
}
您还可以将 $Var
约束为并且 [Int]
为:
[Int]$Var = Read-Host -prompt "Insert a number from 1 to 6"
这将有助于将输入限制为整数...
但是,这种类型的东西通常包含在一个循环中,因此如果进行了不可接受的输入,则会出现重新提示。
试试这个:
$ExcludeValues=@(1, 3, 5, 6)
$var = Read-Host -prompt "Insert a number from 1 to 6"
if ($var -in $ExcludeValues)
{
"Non valid input..."
}
else
{
"OK"
}