2015-03-31 2 views
1

У меня есть программа, и я просто пытаюсь проверить отрицательное число, но это не нравится. Есть ли советы?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!" 
    } 
+1

Вы читаете в '$ number' но проверка' $ radius'? –

+1

Как сказал Этан Рейснер, вы не проверяете номер $. –

+0

Извините, посмотрите сейчас – OysterMaker

ответ

6

Read-Host производит [string] выхода, так что вы на самом деле делаете сравнение строк, а не получение результата вы ожидаете. В ролях $number в [int] сделать математическое сравнение:

if ([int]$number -le 0) 
+0

Спасибо человеку! Это сделал трюк! – OysterMaker