Ceci est une ancienne révision du document !
Pour plus de flexibilité, les scripts peuvent accepter des paramètres.
On déclare les paramètres en début de script avec le bloc Param()
:
Param ( $FirstParam, $SecondParam, $ThirdParam )
Avec des paramètres déclarés ainsi, l'utilisateur peut appeler le script et bénéficier de l'autocomplétion sur les options de la même manière que pour les cmdlets.
S'il n'y a pas de bloc Param() en début de script les données fournies au script à l’exécution sont tout de même accessible dans la variable $args.
Param() reçoit des variables, elles peuvent être fortement typées :
Param ( [int] $TankID, [float] $WaterLevel )
Le type Switch permet de facilement tester si une option a été fournie lors de l'appel
Param ( [int] $TankID, [float] $WaterLevel, [Switch] $ResetCounters ) If ($ResetCounters -eq $True) { # L'option -ResetCounters a été saisie lors de l'appel }
L'utilisation d'un décorateur permet d'ajouter des attributs aux paramètres :
Param ( [Parameter(Mandatory, HelpMessage = 'Cistern identidier')] [int] $TankID, [Parameter(Mandatory, HelpMessage = 'Water level in meters') ][float] $WaterLevel )
Pour ajouter de l'aide sur le paramètre, il existe l'attribut PSDefaultValue
Param( [Parameter(Mandatory, HelpMessage = 'Cistern identidier')] [PSDefaultValue(Help='Current directory', Value=102)] [int] $TankID = 102 )
On peut également introduire des tests de validation des paramètres. La validation peut s'appliquer aux variables en général
Param( [Parameter(Mandatory)] [ValidateSet("Low", "Average", "High")] [string[]]$Detail )