2016-05-12 6 views
2

Ich möchte eine grundlegende Validierung für eine Benutzereingabe in PowerShell durchführen, um sicherzustellen, dass ein Benutzer nur eine ganze Ganzzahl eingeben kann und nicht beispielsweise -7 eingibt. Ich bin nicht sicher, wie das gemacht wird und würde einen Zeiger schätzen.Wie kann sichergestellt werden, dass eine Funktion nur eine positive Ganzzahl akzeptiert?

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

Wenn ein Benutzer -$number10 eingibt, wird dies akzeptiert. Ich möchte, dass diese Art von Eingabe abgelehnt wird.

Antwort

4

Sie ValidateRange für den Parameter verwenden:

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

Vom documentation:

ValidateRange Validierungsattribut

Das ValidateRange Attribut für jeden Parameter oder Variablenwert einen numerischen Bereich spezifiziert . Windows PowerShell generiert einen Fehler , wenn ein Wert außerhalb dieses Bereichs liegt. Im folgenden Beispiel muss der Wert der Versuche Parameter zwischen 0 und 10.

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

Im folgenden Beispiel muss der Wert der Variablen $ Zahl zwischen 0 und 10

[Int32][ValidateRange(0,10)]$number = 5 
Verwandte Themen