Outils pour utilisateurs

Outils du site


dev:powershell:parametres

Ceci est une ancienne révision du document !


PowerShell : Utiliser des paramètres

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 :

  • Caractère obligatoire ou non ;
  • Message d'aide
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
)

Références

dev/powershell/parametres.1688143725.txt.gz · Dernière modification : 2023/06/30 16:48 de yoann