2016-05-12 105 views
2

我想對PowerShell中的用戶輸入進行一些基本驗證,以確保用戶只能輸入整數,而不輸入-7。我不確定這是如何完成的,並希望得到一個指針。如何確保一個函數只接受一個正整數?

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

如果用戶輸入-$number這將被接受。我希望它拒絕這種類型的輸入。

回答

4

可以使用ValidateRange爲參數:

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

documentation

ValidateRange驗證屬性

的ValidateRange屬性指定數值範圍的每個 參數或變量值。如果任何值超出該範圍,Windows PowerShell將生成一個錯誤 。在以下示例中,將 的嘗試參數的值必須是10

在以下例子中爲0至

Param 
(
    [parameter(Mandatory=$true)] 
    [ValidateRange(0,10)] 
    [Int] 
    $Attempts 
) 
,變量$數的值必須是 10之間0和

[Int32][ValidateRange(0,10)]$number = 5 
相關問題