Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédente | |||
| dev:powershell:parametres [2023/06/30 16:48] – yoann | dev:powershell:parametres [2023/08/27 19:50] (Version actuelle) – yoann | ||
|---|---|---|---|
| Ligne 2: | Ligne 2: | ||
| - | ====== PowerShell : Utiliser des paramètres ====== | + | ====== PowerShell : Utiliser des paramètres |
| - | Pour plus de flexibilité, | + | Pour plus de flexibilité, |
| - | On déclare les paramètres en début de script avec le bloc **'' | + | On déclare les paramètres |
| <code powershell> | <code powershell> | ||
| + | # Début de script aScript.ps1 | ||
| Param ( | Param ( | ||
| $FirstParam, | $FirstParam, | ||
| Ligne 13: | Ligne 14: | ||
| $ThirdParam | $ThirdParam | ||
| ) | ) | ||
| + | </ | ||
| + | |||
| + | <code powershell> | ||
| + | function aFunctionName { | ||
| + | Param( | ||
| + | $FirstParam, | ||
| + | $SecondParam, | ||
| + | $ThirdParam | ||
| + | ) | ||
| + | BEGIN{} | ||
| + | PROCESS{} | ||
| + | END{} | ||
| + | } | ||
| + | |||
| </ | </ | ||
| Avec des paramètres déclarés ainsi, l' | Avec des paramètres déclarés ainsi, l' | ||
| + | |||
| + | <code powershell> | ||
| + | # Appel du script avec les paramètres nommés : | ||
| + | aScript.ps1 -FirstParam aValue1 -SecondParam aValue2 -ThirdParam aValue3 | ||
| + | |||
| + | # On appelle une fonction de la même manière | ||
| + | aFunctionName -FirstParam aValue1 -SecondParam aValue2 -ThirdParam aValue3 | ||
| + | </ | ||
| 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**. | 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**. | ||
| Ligne 74: | Ligne 97: | ||
| ) | ) | ||
| </ | </ | ||
| + | |||
| + | ===== Utiliser les paramètres courants ===== | ||
| + | |||
| + | Les fonctions nommées peuvent hériter des paramètres courants comme **-Verbose** ou **-Debug**. Pour une informations exhaustive confère [[https:// | ||
| + | |||
| + | Dans l' | ||
| + | <code powershell> | ||
| + | function aFonctionName { | ||
| + | Param( | ||
| + | # Nécessaire pour lier les paramètres courants | ||
| + | [CmdletBinding()] | ||
| + | ) | ||
| + | |||
| + | # Affiche un message avec la valeur de l' | ||
| + | | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | L' | ||
| + | <code powershell> | ||
| + | aFonctionName | ||
| + | $Verbose = False | ||
| + | |||
| + | aFonctionName -Verbose | ||
| + | $Verbose = True | ||
| + | |||
| + | aFonctionName -Verbose: | ||
| + | $Verbose = False | ||
| + | |||
| + | aFonctionName | ||
| + | $Verbose = True | ||
| + | </ | ||
| + | |||
| + | |||
| + | Les variables '' | ||
| + | |||
| + | <code powershell> | ||
| + | # Tester la présence du paramètre courant Verbose | ||
| + | $PSCmdlet.MyInvocation.BoundParameters[" | ||
| + | $PSCmdlet.MyInvocation.BoundParameters.ContainsKey(' | ||
| + | |||
| + | $PSBoundParameters[" | ||
| + | $PSBoundParameters.ContainsKey(' | ||
| + | |||
| + | |||
| + | # Accéder à la valeur du paramètre courant Verbose | ||
| + | $PSCmdlet.MyInvocation.BoundParameters[' | ||
| + | $PSBoundParameters[' | ||
| + | $PSBoundParameters.Item(' | ||
| + | $PSBoundParameters.verbose | ||
| + | </ | ||
| + | |||
| ===== Références ===== | ===== Références ===== | ||