Estoy estudiando las funciones de powershell y sus parámetros de validación. Sin embargo, no puedo entender si son realmente útiles.son los parámetros de validación realmente útiles?
Hago un simple ejemplo.
function get-choice(
[parameter(Mandatory=$true)][String][ValidateSet('Y','N')]$choice
)
{return $choice}
get-choice k
Esta función me devuelve este error:
get-choice : Impossibile convalidare l'argomento sul parametro 'choice'. L'argomento "k" non appartiene al set "Y,N" specificato dall'attributo ValidateSet. Fornire un argomento inclu
so nel set ed eseguire di nuovo il comando.
In riga:6 car:11
+ get-choice <<<< k
+ CategoryInfo : InvalidData: (:) [get-choice], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,get-choice
Si no se especifica un conjunto válido de valores que puedo comprobar a dentro de mi código:
function get-choice2(
[parameter(Mandatory=$true)][String]$choice
) {
if($choice -ne 'y' -and $choice -ne 'n') {
write-host "you must choose between yes and no"
return
}
return $choice
}
get-choice2 k
y consigo un mensaje más amigable:
you must choose between yes and no
En primer lugar, me gustaría saber si es posible personalizar el mensaje de error usando validateset. Entonces espero que alguien pueda explicar por qué tendría que preferir el primer acercamiento. Gracias por adelantado.
También diría que el mensaje de error de ValidateSet es mucho más amigable que cualquier otra cosa que usted pueda hacer. Plus ValidateSet agregará cierta capacidad de expansión de pestañas si sus usuarios usan PowerTab. – JasonMArcher
Gracias veru mucho stej. Tu explicación ha sido muy clara. Leí el enlace, pero está fuera de mis conocimientos actuales. Gracias de nuevo :) –