ein Validierungs-Set erstellen ist recht einfach.Powershell Auto-Complete auf ValidationSet
param(
[Parameter(Mandatory=$true)]
[ValidateSet('Ding','Dong')]
[string]$bellState,
[Parameter(Mandatory=$true)]
[ValidateSet('Dead','Alive')]
[string]$witchesState
)
Es bietet kostenlose Auto-Vervollständigung, wenn Ihre Powershell-Version> 2
aber es ist nicht so hilfreich, wenn Sie in dem params am Anfang nicht passieren.
cmdlet Untitled2.ps1 at command pipeline position 1
Supply values for the following parameters:
bellState: Dib
witchesState: Alive
C:\Users\cac\Untitled2.ps1 : Cannot validate argument on parameter 'bellState'. The argument "Dib" does not belong to the set "Ding,Dong" specified by the ValidateSet attribute. Supply an argument that is in the set and then
try the command again.
+ CategoryInfo : InvalidData: (:) [Untitled2.ps1], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Untitled2.ps1
diese Zeit kein Abschluss Tab oder Hinweise :(
Wenn Sie in etwas ungültig Sie geben eine nützliche Fehlermeldung erhalten tun: am Ende
"The argument "Dib" does not belong to the set "Ding,Dong""
jedoch dieser Fehler ausgelöst wird, der Params nicht zum Zeitpunkt des ursprünglichen Fehlers und es gibt keine Möglichkeit, es erneut zu versuchen.
Hat jemand einen Weg gefunden, diese Validierung zu erweitern, um noch benutzerfreundlicher zu sein die initiierte Instanz ohne übergebene Parameter.
Ich weiß nicht, einen Weg, um dies eine ValidateSet Erweiterung. Das einzige, was ich weiß, was funktionieren würde, ist, das 'Read-Host'-Cmdlet zu verwenden und es selbst zu tun, aber ich würde es dir nicht empfehlen. Du solltest wahrscheinlich damit leben. –