Lire un fichier ligne par ligne dans PowerShell

Lire un fichier ligne par ligne dans PowerShell


Source : Stack Overflow [powershell],)

Peu de documentation sur les boucles PowerShell.

La documentation sur les boucles dans PowerShell est abondante, et vous pourriez consulter les rubriques d’aide suivantes : about_For, about_ForEach, about_Do, about_While.

foreach($line in Get-Content .\file.txt) {
    if($line -match $regex){
        # Travail ici
    }
}

Une autre solution idiomatique PowerShell a votre probleme est de diriger les lignes du fichier texte vers la cmdlet ForEach-Object :

Get-Content .\file.txt | ForEach-Object {
    if($_ -match $regex){
        # Travail ici
    }
}

Au lieu de faire la correspondance regex a l’interieur de la boucle, vous pouvez diriger les lignes a travers Where-Object pour filtrer uniquement celles qui vous interessent :

Get-Content .\file.txt | Where-Object {$_ -match $regex} | ForEach-Object {
    # Travail ici
}