Module 5 – Fonctions, passage de paramètres et commandlet personnelles
Module 5 ? Fonctions, passage de param?tres et commandlet personnelles
Table des mati?res
Passer des param?tres aux scripts.........................................................................................................2 La variable $args..............................................................................................................................2 R?cup?ration des param?tres dans un script....................................................................................2 Param?tres nomm?s typ?s et gestion des erreurs.............................................................................5 Param?tres typ?s.........................................................................................................................5 Gestion des erreurs......................................................................................................................6
?criture de fonctions.............................................................................................................................7 Fonctions avec param?tres...............................................................................................................8 Param?tres typ?s et param?tres non optionnels avec throw............................................................8 Param?tres optionnels....................................................................................................................10 Param?tres obligatoires..................................................................................................................10
Cr?er vos propres cmdlet....................................................................................................................12 ?tape 1: Ouvrir un fichier PS1 pour y ?crire vos fonctions...........................................................12 ?tape 2: Testez la fonction.............................................................................................................12 ?tape 3: Transformer le fichier sous forme de module..................................................................13 ?tape 4: Copier le fichier de module dans le r?pertoire des modules du syst?me.........................13 ?tape 5: Tester................................................................................................................................13
Ajouter l'aide ? vos fonctions.............................................................................................................14 Placement ? l'int?rieur d'un script.................................................................................................14 Placement ? l'int?rieur d'une fonction...........................................................................................14 ?tiquettes principales pour les rubriques d'aide.............................................................................15
Module 5
Fonctions et passage de param?tres
Page 1
Passer des param?tres aux scripts
Vos scripts peuvent recevoir des param?tres qui sont pass?s par l'usager ? la ligne de commande. On augmente ainsi la flexibilit? du script.
La variable $args
Entrez le script suivant: write-host "Bonjour, $args!" Ex?cutez-le: .\script.ps1 Hello, ! Il n'y a qu'un ! car nous n'avons pas entr? de param?tres Si on r??crit: .\script.ps1 St?phane Hello, St?phane! Parce que la variable $args est un tableau, vous avez donc acc?s ? chaque ?l?ment du tableau gr?ce ? la notation de crochet [] .
R?cup?ration des param?tres dans un script
Powershell dispose de variables pr?-d?finies qui permettent de r?cup?rer les arguments pass?s ? la ligne de commande. Il s'agit de la variable pr?-d?finie "args". On peut y acc?der en utilisant $args. Exemple: Ainsi, pour aller chercher le premier argument, on peut faire: write-host "Bonjour, $($args[0])!" Essayons le script maintenant:
Module 5
Fonctions et passage de param?tres
Page 2
.\script.ps1 Stephane Chasse Bonjour, Stephane!
Que s'est-il pass? avec "chasse" ? Utilisons args[1].
Write-host "Bonjour, $($args[0]) $($args[1]) .\script.ps1 St?phane Chass?
Bonjour, St?phane Chass?
Utilisation de param?tres nomm?s dans les scripts
Vous conviendrez que la variable args est utile mais n'est pas tr?s flexible lorsqu'on veut utiliser des param?tres que nous d?finissons nous-m?mes. Viens alors les param?tres nomm?s. Les param?tres nomm?s sont utilis?s avec l'instruction "param" qui d?finie l'ordre et le nom des param?tres.
La syntaxe est la suivante:
param ($NomParam?tre1, $NomParam?tre2, etc...)
Essayons tout ?a avec un script qui demande le nom de l'usager et son age. Le nom du param?tre pour l'usager se nommera "user" et le nom du param?tre pour l'age se nommera "age".
Ouvrez votre application Powershell GUI et tapez:
param($User, $Age)
write-host "Bonjour $User. " if ( $Age -lt 12 ) {
write-host "Vous avez l'age de prendre du lait" } else {
if ( $Age -lt 18 ) {
write-host "Vous avez l'age de prendre du jus" } else {
write-host "Vous avez l'age de prendre de l'alcool" } }
Module 5
Fonctions et passage de param?tres
Page 3
Sauvegardez le script et ex?cutez-le:
.\script2.ps1 Louis 35
Bonjour Louis Vous avez l'age de prendre de l'alcool
.\script2.ps1 -User Jean -Age 16
Bonjour Jean Vous avez l'age de prendre du jus
Votre script r?pond maintenant de fa?on beaucoup flexible ? l'aide des param?tres nomm?s tout comme le ferait un cmdlet de powershell.
Remarques: 1)
L'ordre des param?tres n'a pas d'importance: ex: script2.ps1 -User Stef -Age 12 ou script2.ps1 -Age 12 -User Stef provoque le m?me affichage.
2) Le type des param?tres n'est pas v?rifi? par d?faut.
Module 5
Fonctions et passage de param?tres
Page 4
Param?tres nomm?s typ?s et gestion des erreurs
Param?tres typ?s
Reprenons le script pr?c?dent et entrez les valeurs suivantes: ./script2 -User 1 -Age Stef Bonjour 1. Vous avez l'age de prendre de l'alcool Mais pourquoi donc le dernier param?tre nous a fait afficher de prendre de l'alcool ?
Parce que le chiffre 1 est all? dans le param?tre "User" comme cha?ne de caract?re alors que la cha?ne "Stef" n'a pu ?tre ?valu?e comme il se doit dans les conditions. Nous allons rem?dier a cette situation en pr?fixant les param?tres des types voulues. La syntaxe est la suivante: param ( [type] $Nom, [type] $Nom2, etc...) Reprenons l'exemple avec cette syntaxe:
param([string]$Name, [int] Age)
./Script3 -User Stef Nous obtenons: Bonjour Stef Vous avez l'age de prendre du lait. En fait, l'affichage de la derni?re phrase provient du fait que la variable n'a pas ?t? entr?e et donc la valeur vaut 0. Comme 0 est plus petit que 12, la phrase "Vous avez l'age de prendre du lait" est affich?e. Il serait donc interessant de s'assurer que les param?tres sont bel et bien entr?s correctement.
Module 5
Fonctions et passage de param?tres
Page 5
................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.
Related download
- module 5 fonctions passage de paramètres et commandlet personnelles
- how to use psping to test ping latency bandwidth blue prism
- network management system industrial hivision 8 hirschmann
- dell command powershell provider
- active directory powershell quick reference jonathan medd
- acceptance test specification of udp communication autosar
- powershell obfuscation detection using science black hat
- powershell in windows apcug
- 11 3 at qiclose close tcp or udp connection openvox
- lab 2 udp pinger lab ufrgs