Comment sortir d'un objet Foreach dans PowerShell
-
Utilisez la condition
break
pour sortir deForEach-Object
dans PowerShell -
Utilisez
if
etbreak
pour sortir deForEach-Object
dans PowerShell -
Utilisez
if
etreturn
pour sortir deForEach-Object
dans PowerShell -
Utilisez
if
etcontinue
pour sortir deForEach-Object
dans PowerShell - Conclusion

Le cmdlet ForEach-Object
permet à l’utilisateur d’itérer à travers des collections et d’opérer sur chaque élément d’une collection d’objets d’entrée. Dans ForEach-Object
, les objets d’entrée sont acheminés au cmdlet ou spécifiés à l’aide du paramètre -InputObject
.
Il existe deux manières différentes de construire une commande ForEach-Object
dans PowerShell : Bloc de script
et Déclaration d'opération
. Le cmdlet ForEach-Object
exécute le bloc de script ou la déclaration d’opération de chaque objet d’entrée.
Utilisez un bloc de script
pour spécifier l’opération. La variable $_
est utilisée dans le bloc de script pour représenter l’objet d’entrée actuel.
Le bloc de script
peut contenir n’importe quel script PowerShell. Par exemple, la commande suivante obtient la valeur de la propriété Name
, de la fonction et des alias
de chaque cmdlet installée sur l’ordinateur.
Get-Command | ForEach-Object { $_.Name }
Une autre façon de construire la commande ForEach-Object
est d’utiliser la déclaration opération
. Vous pouvez spécifier une valeur de propriété ou appeler une méthode avec la déclaration d’opération.
Get-Command | ForEach-Object Name
Parfois, il y a des situations où vous pourriez vouloir sortir de ForEach-Object
, mais cela fonctionne différemment de la déclaration ForEach
. Dans ForEach-Object
, la déclaration est exécutée dès que chaque objet est produit.
Dans la déclaration ForEach
, tous les objets sont collectés avant l’exécution de la boucle. Le ForEach-Object
est un cmdlet, pas une véritable boucle.
Lorsque vous utilisez break
ou continue
pour sortir de la boucle, tout le script est terminé au lieu de sauter la déclaration après. Cependant, il est possible de sortir de l’objet ForEach-Object
en utilisant certaines conditions dans PowerShell.
Utilisez la condition break
pour sortir de ForEach-Object
dans PowerShell
Dans PowerShell, la boucle foreach-object
est couramment utilisée pour itérer sur chaque élément d’une collection ou d’un pipeline. Parfois, il devient nécessaire de sortir de cette boucle prématurément sur la base de certaines conditions.
La déclaration break
offre un moyen simple d’y parvenir en terminant immédiatement la boucle lorsqu’une condition spécifique est remplie.
$numbers = "one", "two", "three", "four", "five"
$Break = $False;
$numbers | Where-Object { $Break -eq $False } | ForEach-Object {
$Break = $_ -eq "three";
Write-Host "The number is $_.";
}
Dans ce snippet de code, nous initialisons un tableau $numbers
contenant des chaînes représentant des nombres. Nous définissons également $Break
à $False
au départ.
Dans la boucle foreach-object
, nous utilisons Where-Object
pour filtrer les éléments en fonction de la variable $Break
. Si $Break
est $False
, la boucle continue ; sinon, elle s’arrête.
À l’intérieur de la boucle, nous vérifions si l’élément actuel est égal à three
. Si c’est le cas, nous définissons $Break
à $True
, ce qui entraîne l’arrêt de la boucle.
Sortie :
Utilisez if
et break
pour sortir de ForEach-Object
dans PowerShell
Parfois, il est nécessaire de sortir de cette boucle prématurément sur la base de conditions spécifiques. La méthode if
propose une approche simple pour accomplir cette tâche en évaluant une condition dans la boucle et en déclenchant une sortie lorsque la condition est remplie.
Dans cette méthode, vous devez utiliser une valeur vide
dans une collection d’objets pour sortir de ForEach-Object
dans PowerShell. Par exemple, vous pouvez utiliser la condition if
pour sortir de ForEach-Object
.
$numbers = "one", "two", "three", "", "four"
$numbers | ForEach-Object {
if ($_ -eq "") {
break;
}
Write-Host "The number is $_."
}
Dans le snippet de code fourni, nous initialisons un tableau $numbers
contenant des chaînes représentant des nombres. Dans la boucle foreach-object
, nous itérons sur chaque élément du tableau.
En utilisant la déclaration if
, nous vérifions si l’élément actuel $_
est une chaîne vide. Si la condition est évaluée comme vraie, nous utilisons break
pour sortir immédiatement de la boucle.
Sinon, la boucle continue, et nous affichons le nombre actuel en utilisant Write-Host
.
Sortie :
Utilisez if
et return
pour sortir de ForEach-Object
dans PowerShell
Sortir d’une boucle foreach-object
dans PowerShell en utilisant la combinaison des méthodes if
et return
permet d’arrêter prématurément la boucle sur la base de conditions spécifiques. Cette méthode est particulièrement utile lorsque vous devez interrompre l’exécution de la boucle et retourner le contrôle à l’appelant lorsqu’une certaine condition est remplie.
À l’intérieur de la boucle, une déclaration if
est utilisée pour évaluer la condition de sortie de la boucle. Si la condition est évaluée comme vraie, la déclaration return
est exécutée, mettant immédiatement fin à l’exécution de la boucle et retournant le contrôle à l’appelant.
$numbers = "one", "two", "three", "four", "five"
$numbers | ForEach-Object {
if ($_ -eq "three") {
return
}
Write-Host "The number is $_."
}
Dans le snippet de code fourni, nous initialisons un tableau $numbers
contenant des chaînes représentant des nombres. Dans la boucle foreach-object
, nous itérons sur chaque élément du tableau.
En utilisant la déclaration if
, nous vérifions si l’élément actuel $_
est égal à three
. Si la condition est évaluée comme vraie, nous utilisons return
pour sortir immédiatement de la boucle.
Sinon, la boucle continue, et nous affichons le nombre actuel en utilisant Write-Host
.
Sortie :
Utilisez if
et continue
pour sortir de ForEach-Object
dans PowerShell
Dans PowerShell, la déclaration continue
est utilisée pour passer le reste de l’itération actuelle d’une boucle et procéder à l’itération suivante. Bien qu’elle soit principalement employée dans les boucles pour sauter des itérations spécifiques, continue
peut également être utilisée pour mettre en œuvre une forme de sortie de boucle dans une boucle foreach-object
.
En plaçant stratégiquement la déclaration continue
dans la boucle et en incorporant une logique conditionnelle, vous pouvez obtenir une interruption anticipée de la boucle sur la base de conditions spécifiques.
$numbers = 1..10
$numbers | ForEach-Object {
if ($_ -eq 5) {
continue
}
Write-Host "Number: $_"
}
Dans l’exemple de code fourni, nous initialisons un tableau $numbers
contenant des nombres de 1 à 10. Dans la boucle foreach-object
, nous itérons sur chaque nombre dans le tableau.
En utilisant la déclaration if
, nous vérifions si le nombre actuel est égal à 5. Si la condition est évaluée comme vraie, la déclaration continue
est exécutée, ce qui entraîne le saut de l’itération actuelle et le passage à la suivante.
Cela permet d’obtenir effectivement l’interruption anticipée de la boucle lorsque la condition spécifiée est remplie.
Sortie :
Conclusion
Pour résumer, le cmdlet ForEach-Object
dans PowerShell facilite l’itération via des collections, permettant des opérations sur chaque élément individuellement. Nous avons exploré diverses méthodes pour sortir prématurément d’une boucle ForEach-Object
, y compris l’utilisation de break
, return
et continue
.
Alors que break
et continue
fournissent un flux de contrôle direct dans la boucle, return
offre une approche alternative pour sortir de la boucle et retourner à l’appelant. Chaque méthode a ses propres cas d’utilisation et avantages, offrant flexibilité dans l’exécution des scripts.
À l’avenir, les utilisateurs peuvent approfondir leur compréhension en expérimentant ces méthodes dans différents scénarios, en explorant leurs nuances et en maîtrisant leur application dans le script PowerShell.