Powershell If和ElseIf语句不起作用

时间:2018-10-19 00:03:13

标签: powershell if-statement

我对Powershell和编码非常陌生。据我了解,来自Read-Host cmdlet的输入可以通过管道传递到变量中。我想提示用户输入一个大于5的数字,如果-gt 5则为Write-Host是elseif -lt 5否。由于某种原因,无论我选择什么号码,我都不会。如果直接进入elseif。有人可以帮忙吗?

$A = Read-Host "Enter number greater than 5"

If ($A -gt 5)
{
Write-Host "yes"
}
elseif ($A -lt 5)
{
Write-Host "no"
}

1 个答案:

答案 0 :(得分:0)

将TheIncorrigible1s注释放入完整的示例中。

Read-Host将输入作为字符串,无法确定它是大于还是小于另一个字符串。 例如:电话大于眼镜吗?

PowerShell将输入解释为“大于七个吗?”而不是“ 1是否大于7?”

数字与单词。

[int]前面加上Read-Host会将输入转换为整数。这意味着,如果您尝试键入文本,它将出错。它只会接受数字输入。

$A = [int](Read-Host "Enter number greater than 5")

If($A -gt 5) {
    "Yes" | Out-host
} elseif($A -lt 5) {
    "No" | Out-host
}

注意:我宁愿用Out-Host代替Write-Host。不过每个人都有。