Niewiele dokumentacji na temat pętli programu PowerShell.
Dokumentacja na pętli w PowerShell jest obfite, a może chcesz sprawdzić następujące tematy pomocy: about_For
, about_ForEach
, about_Do
, about_While
.
foreach($line in Get-Content .\file.txt) {
if($line -match $regex){
# Work here
}
}
Innym idiomatycznym rozwiązaniem problemu w programie PowerShell jest przesyłanie wierszy z pliku tekstowego do polecenia ForEach-Object
cmdlet :
Get-Content .\file.txt | ForEach-Object {
if($_ -match $regex){
# Work here
}
}
Zamiast dopasowywania wyrażeń regularnych wewnątrz pętli, możesz przepuścić linie, Where-Object
aby przefiltrować tylko te, które Cię interesują:
Get-Content .\file.txt | Where-Object {$_ -match $regex} | ForEach-Object {
# Work here
}
Get-Content
ładuje cały plik do pamięci naraz, co powoduje błąd lub zawieszanie się w przypadku dużych plików.