2016-05-12 2 views
2

Я хочу сделать некоторую базовую проверку на пользовательском входе в PowerShell, чтобы гарантировать, что пользователь может ввести только целое число и не ввести -7, например. Я не уверен, как это делается и по достоинству оценят указатель.Как можно гарантировать, что функция принимает только положительное целое число?

[parameter(Mandatory=$false)][int]$number 

Если пользователь вводит -$number, это будет принято. Я хочу, чтобы он отклонил этот тип ввода.

ответ

4

Вы можете использовать ValidateRange для параметра:

[parameter(Mandatory=$false)] 
[ValidateRange(1, [int]::MaxValue)] 
[int] $number 

От documentation:

ValidateRange Validation Атрибут

Атрибут ValidateRange задает числовой диапазон для каждого параметра или значения переменной , Windows PowerShell генерирует ошибку , если какое-либо значение находится за пределами этого диапазона. В следующем примере, значение параметра попыток должно быть между 0 и 10.

Param 
(
    [parameter(Mandatory=$true)] 
    [ValidateRange(0,10)] 
    [Int] 
    $Attempts 
) 

В следующем примере, значение переменной $ количество должно быть от 0 до 10.

[Int32][ValidateRange(0,10)]$number = 5 
Смежные вопросы