Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| powershell_base1 [2020/01/17 10:41] – [Do, Until, While] nekan | powershell_base1 [2021/07/22 08:47] (Version actuelle) – [ForEach-Object] nekan | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ~~CLOSETOC~~ | ||
| ====== Les bases de Powershell - 1ère partie ====== | ====== Les bases de Powershell - 1ère partie ====== | ||
| + | <label type=" | ||
| Je vais juste récapituler ici certaines bases très utiles dans la plupart des scripts. | Je vais juste récapituler ici certaines bases très utiles dans la plupart des scripts. | ||
| Ligne 23: | Ligne 23: | ||
| $true | $true | ||
| </ | </ | ||
| - | | '' | + | | '' |
| $true | $true | ||
| 2 -gt 2 | 2 -gt 2 | ||
| $false | $false | ||
| </ | </ | ||
| - | | '' | + | | '' |
| $true | $true | ||
| 2 -ge 2 | 2 -ge 2 | ||
| $true | $true | ||
| </ | </ | ||
| - | | '' | + | | '' |
| $true | $true | ||
| 2 -lt 2 | 2 -lt 2 | ||
| $false | $false | ||
| </ | </ | ||
| - | | '' | + | | '' |
| $true | $true | ||
| 2 -le 2 | 2 -le 2 | ||
| Ligne 182: | Ligne 182: | ||
| </ | </ | ||
| + | '' | ||
| + | |||
| + | <sxh powershell> | ||
| + | Switch ($Letter) | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | |||
| + | # Retour | ||
| + | Lettre a | ||
| + | Lettre A | ||
| + | |||
| + | $Letter = " | ||
| + | Switch -CaseSensitive ($Letter) | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | |||
| + | # Retour | ||
| + | Lettre a</ | ||
| ===== Les boucles ===== | ===== Les boucles ===== | ||
| Les boucles permettent de répéter un code un certain nombre de fois. | Les boucles permettent de répéter un code un certain nombre de fois. | ||
| - | <note important>Il faut toujours faire attention à ne pas créer une boucle infinie. Pensez à prévoir une porte de sortie.</ | + | <callout type=" |
| ==== ForEach-Object ==== | ==== ForEach-Object ==== | ||
| Ligne 208: | Ligne 230: | ||
| 5 | 5 | ||
| </ | </ | ||
| + | |||
| + | === Parallélisation === | ||
| + | |||
| + | * Référence : [[https:// | ||
| + | |||
| + | <callout type=" | ||
| + | * **ForEach-Object** : Permet la gestion des éléments du pipeline. Dispose désormais de l' | ||
| + | * **ForEach** : Ne prend pas en charge ni le pipeline ni la parallélisation. Traite uniquement un nombre défini d' | ||
| + | </ | ||
| + | |||
| + | <callout type=" | ||
| + | |||
| + | Dans cette exemple, on crée une boucle qui va attendre 30 fois 1 seconde soit théoriquement un total de 30 secondes : | ||
| + | <sxh powershell> | ||
| + | 30</ | ||
| + | |||
| + | En activant le paramètre '' | ||
| + | <sxh powershell> | ||
| + | 6</ | ||
| + | |||
| + | La commande n'a mis que 6 secondes car la parallélisation a traitée 5 commandes (valeur par défaut) en concurrence. Le paramètre '' | ||
| + | <sxh powershell> | ||
| + | 3</ | ||
| + | |||
| + | La parallélisation permet d' | ||
| + | <sxh powershell> | ||
| + | 91 | ||
| + | (Measure-Command { Get-Process | ForEach-Object -Parallel { Write-Host $_.Name } }).Milliseconds | ||
| + | 995</ | ||
| + | |||
| + | <callout type=" | ||
| ==== For ==== | ==== For ==== | ||
| Ligne 216: | Ligne 269: | ||
| <sxh powershell> | <sxh powershell> | ||
| - | For ( $i=0 ; $i -lt 5 ; $i++ ) # On part de 0, on teste si $i est inférieur à 5 et à chaque boucle on ajoute 1 à $1 | + | For ( $i=0 ; $i -lt 5 ; $i++ ) # On part de 0, on teste si $i est inférieur à 5 et à chaque boucle on ajoute 1 à $i |
| { # On ouvre le bloc | { # On ouvre le bloc | ||
| Write-Host $i # On écrit la valeur de $i | Write-Host $i # On écrit la valeur de $i | ||
| Ligne 291: | Ligne 344: | ||
| # du test aurait renvoyé $false | # du test aurait renvoyé $false | ||
| </ | </ | ||
| - | |||
| - | --- // | ||
| ~~DISCUSSION~~ | ~~DISCUSSION~~ | ||