15/11/2024

Gérer la position des paramètres de fonction

I. Présentation

Dans une fonction PowerShell, et au même titre que c'est le cas avec certains cmdlets PowerShell, vous avez la possibilité d'imposer la position d'un paramètre. Autrement dit, vous pouvez imposer l'ordre selon lequel les paramètres doivent être indiqués au moment d'appeler une fonction, lorsque le nom des paramètres n'est pas spécifié. Nous allons étudier cette notion dans ce chapitre.

II. Syntaxe

Pour indiquer la position d'un paramètre, vous devez spécifier un chiffre tout en sachant que la première position est "0". Cette déclaration doit être précisée comme ceci :

param([Parameter(Position=0)]$Nom)

Si vous souhaitez que ce paramètre soit obligatoire et que sa position soit "0", voici la syntaxe à adopter pour ajouter ces deux instructions sur un même paramètre :

param([Parameter(Mandatory=$true,Position=0)]$Nom)

III. Exemple

Nous allons reprendre l'exemple de la fonction "Get-Login" et associer la position 0 au paramètre "Prenom" et la position 1 au paramètre "Nom". Ce qui donne ceci :

function Get-Login { 

    param([Parameter(Mandatory=$true,Position=1)][ValidatePattern("^[a-z]+$")]$Nom,
          [Parameter(Mandatory=$true,Position=0)][ValidatePattern("^[a-z]+$")]$Prenom)

    $Identifiant = (($Prenom).Substring(0,1)).ToLower() + "." + ($Nom).ToLower()

    return $Identifiant
}

Après avoir ajouté ce paramétrage, sachez qu'il n'y aura pas de différence si vous précisez le nom du paramètre et sa valeur. Ainsi, ces deux commandes donneront le même résultat :

Get-Login -Prenom "Florian" -Nom "Burnel"
Get-Login -Nom "Burnel" -Prenom "Florian"

La position du paramètre en jeu si nous appelons la fonction et que nous indiquons des valeurs sans préciser le nom des paramètres. Par exemple :

Get-Login "Florian" "Burnel"

Ainsi, la fonction prendra la première valeur pour l'affecter au paramètre "Prenom" et la seconde valeur pour l'associer au paramètre "Nom". Le fait d'affecter un numéro de position à chaque paramètre permet de clarifier le comportement de la fonction lorsque nous l'appelons sans préciser les noms des paramètres.

IV. Conclusion

La gestion de la position des paramètres n'est pas indispensable puisque la bonne pratique, c'est de préciser explicitement le nom du paramètre puis sa valeur. Néanmoins, ceci permet d'avoir une fonction encore plus complète et qui permet d'être appelée plus rapidement, notamment en mode console.


livre pour apprendre PowerShell
author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.