Powershell没有正确阅读负数

Oys*_*ker 2 powershell

我有一个程序,我只是想检查一个负数,但它不喜欢它.有什么提示吗?

$numbers = @(0,1,2,3,4,5,6,7,8,9,-1,-2,-3,-4,-5,-6,-7,-8,-9)
$number = Read-Host "Please input a number: " 
if ($number -le 0)
    {
        Write-Output "Thanks for using the program! Exitting now..."
        $finished = 1
    }
    elseif ($number -notin $numbers)
    {
        Write-Error "Input must be numeric"
        continue
    }
    else
    {
        Write-Host "Good number!"
    }
Run Code Online (Sandbox Code Playgroud)

mjo*_*nor 6

Read-Host产生[string]输出,所以你实际上正在进行字符串比较,而不是得到你期望的结果.演员$number进行[int]数学比较:

if ([int]$number -le 0)
Run Code Online (Sandbox Code Playgroud)