Powershell if -lt problem; returns true if the condition is false

后端 未结 1 1504
忘了有多久
忘了有多久 2021-01-16 10:04

I have a problem with small script in Powershell. Here is my script:

$number = Read-Host \"Enter a number\"
if ($number -lt 3){
    Write-Host \"Number is to         


        
相关标签:
1条回答
  • 2021-01-16 10:35

    Read-Host always returns a string, and -lt performs lexical comparison with a string as the LHS:

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

    You must convert the string returned from Read-Host to a number in order to perform numerical comparison:

    [int] $number = Read-Host "Enter a number"
    if ($number -lt 3){
        Write-Host "Number is too low."
        break
    }
    
    0 讨论(0)
提交回复
热议问题