Non c'è molta documentazione sui loop di PowerShell.
La documentazione sul loop in PowerShell è abbondante, e si potrebbe voler controllare i seguenti argomenti della Guida: about_For, about_ForEach, about_Do, about_While.
foreach($line in Get-Content .\file.txt) {
if($line -match $regex){
# Work here
}
}
Un'altra soluzione idiomatica di PowerShell al tuo problema è reindirizzare le righe del file di testo al ForEach-Objectcmdlet :
Get-Content .\file.txt | ForEach-Object {
if($_ -match $regex){
# Work here
}
}
Invece di eseguire la corrispondenza regex all'interno del ciclo, puoi collegare le linee Where-Objectper filtrare solo quelle che ti interessano:
Get-Content .\file.txt | Where-Object {$_ -match $regex} | ForEach-Object {
# Work here
}
Get-Contentcarica l'intero file in memoria in una volta, cosa che non funzionerà o si bloccherà su file di grandi dimensioni.