首页 > 解决方案 > Powershell if -lt 问题;如果条件为假,则返回真

问题描述

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

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

25但是,例如,当我输入时,if条件仍然计算为真。

标签: powershellif-statementread-host

解决方案


Read-Host总是返回一个字符串,并与作为 LHS 的字符串-lt进行词法比较:

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

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

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

推荐阅读