Powershell if -lt问题;如果条件为假,则返回true

时间:2018-10-16 00:27:35

标签: powershell if-statement read-host

我对Powershell中的小脚本有疑问。 这是我的脚本:

$number = Read-Host "Enter a number"
if ($number -lt 3){
    Write-Host "Number is too low."
    break
}

例如,当我输入25时,if条件仍然为true。

1 个答案:

答案 0 :(得分:2)

Read-Host总是返回 string ,而-lt用字符串作为LHS执行 lexical 比较:

PS> '25' -lt 3
True  # because '2' comes lexically before '3'

您必须将Read-Host返回的字符串转换为 number 以便执行数字比较:

[int] $number = Read-Host "Enter a number"
if ($number -lt 3){
    Write-Host "Number is too low."
    break
}