Comment sortir d'un objet Foreach dans PowerShell

  1. Utilisez la condition break pour sortir de ForEach-Object dans PowerShell
  2. Utilisez if et break pour sortir de ForEach-Object dans PowerShell
  3. Utilisez if et return pour sortir de ForEach-Object dans PowerShell
  4. Utilisez if et continue pour sortir de ForEach-Object dans PowerShell
  5. Conclusion
Comment sortir d'un objet Foreach dans PowerShell

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 :

sortie de foreach objet dans powershell - sortie 1

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 :

sortie de foreach objet dans powershell - sortie 2

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 :

sortie de foreach objet dans powershell - sortie 3

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 :

sortie de l’objet foreach dans powershell - sortie 4

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.

Vous aimez nos tutoriels ? Abonnez-vous à DelftStack sur YouTube pour nous aider à créer davantage de tutoriels vidéo de haute qualité. Abonnez-vous
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

Article connexe - PowerShell Object