Outils pour utilisateurs

Outils du site


dev:powershell:structures_de_controle

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
dev:powershell:structures_de_controle [2023/06/22 08:21] yoanndev:powershell:structures_de_controle [2023/06/23 12:07] (Version actuelle) yoann
Ligne 1: Ligne 1:
 {{tag>dev powershell}} {{tag>dev powershell}}
- 
-:TODO: 
  
 ====== PowerShell : Les structures de contrôle ====== ====== PowerShell : Les structures de contrôle ======
  
-===== ForEach =====+===== Les boucles ===== 
 + 
 +==== ForEach ====
  
 La boucle **ForEach** permet de traiter chaque éléments d'un tableau ou plus généralement d'un objet itérable : La boucle **ForEach** permet de traiter chaque éléments d'un tableau ou plus généralement d'un objet itérable :
Ligne 22: Ligne 22:
 </note> </note>
  
-===== If =====+==== For ==== 
 + 
 +La boucle **For** est utilisée dans les cas ou l'on souhaite répéter un nombre déterminé d'instructions.  
 + 
 +<code powershell> 
 +For($i=1; $i -le 10; $i++) { 
 +   Write-Host "Creating User $i" 
 +
 +</code> 
 + 
 +==== Do While ==== 
 + 
 +Re-exécute un bloc d'instructions tant que la condition évaluée reste vraie 
 + 
 +<code powershell> 
 +# Repose la question tant que l'utilisateur 
 +# ne répond pas Oui 
 +Do { 
 +        $userChoise = Read-Host -Prompt "Oui ou Non" 
 +} While ($userChoise -ne "Oui"
 +</code> 
 + 
 +==== Do Until ==== 
 + 
 +Inversement, la structure de boucle Do...Until rejouera le boc d'instruction jusqu'à ce que la condi 
 + 
 +<code powershell> 
 +# Repose la question tant que l'utilisateur ne répond 
 +# pas Oui 
 +Do { 
 +        $userChoise = Read-Host -Prompt "Oui ou Non" 
 +} Until ($userChoise -eq "Oui"
 +</code> 
 + 
 +==== While ==== 
 + 
 +La boucle While commence par évaluer la condition avant l'exécution du bloc d'instructions. Le bonc peut donc s’exécuter 0 ou plusieurs fois contrairement aux structures Do..While|Until qui exécutent le bloc 1 ou plusieurs fois. 
 + 
 +<code powershell> 
 +$userChoise = 'Oui' 
 + 
 +# La variable est initialisée à 'oui' 
 +# le bloc ci-dessous ne sera pas exécuté 
 +While ( $userChoise -eq 'Non') { 
 +        $userChoise = Read-Host -Prompt "Oui ou Non" 
 +
 + 
 +</code> 
 + 
 +===== Break et Continue ==== 
 + 
 +Les instructions **Break** et **Continue** permettent de modifier le comportement par défaut des boucles : 
 +  * **Continue** interrompt l'itération courante de la boucle et continue immédiatement sur l'itération suivante de la boucle ; 
 +  * **Break** arrête complètement le traitement de la boucle. 
 + 
 +Ces instructions peuvent être utilisées par exemple pour interrompre les traitements lorsque des données sont considérées invalides.  
 + 
 +<code powershell> 
 +# Applique des traitements sur l'ensemble  
 +# des utilisateurs du tableau sauf l'administrateur 
 + 
 +ForEach ($user in $users) { 
 +   If ($user.Name -eq "Administrator") {Continue} 
 +   Write-Host "Modify user object" 
 +
 +</code> 
 + 
 + 
 +===== Les branchements ===== 
 + 
 +==== If ====
  
 <code powershell> <code powershell>
Ligne 34: Ligne 104:
 </code> </code>
  
-===== Switch =====+==== Switch ====
  
 Pour un branchement conditionnel à choix multiples, il peut être plus lisible d'utiliser l'instruction **Switch** plutôt qu'une instruction If comprenant plusieurs sections **ElseIf** ou des **If** imbriqués. Pour un branchement conditionnel à choix multiples, il peut être plus lisible d'utiliser l'instruction **Switch** plutôt qu'une instruction If comprenant plusieurs sections **ElseIf** ou des **If** imbriqués.
Ligne 60: Ligne 130:
 </code> </code>
  
 +Seconde remarque si la variable a évaluer est un tableau, chaque élément sera évaluer.
  
 ===== Références ===== ===== Références =====
  
   * https://learn.microsoft.com/fr-fr/training/modules/work-script-constructs-windows-powershell/   * https://learn.microsoft.com/fr-fr/training/modules/work-script-constructs-windows-powershell/
dev/powershell/structures_de_controle.1687422111.txt.gz · Dernière modification : 2023/06/22 08:21 de yoann