我对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"
}
答案 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
。不过每个人都有。