12
Ich möchte mit Powershell-Skript über Dateien in einem Ordner iterieren;Wie über Dateien mit Powershell zu iterieren?
Ich möchte mit Powershell-Skript über Dateien in einem Ordner iterieren;Wie über Dateien mit Powershell zu iterieren?
Get-ChildItem | ForEach-Object { <# do what you need to do #> }
oder kürzer:
gci | % { <# ... #> }
oder wenn Sie eine explizite Schleifenkonstrukt wollen:
foreach ($file in Get-ChildItem) {
# ...
}
ist jedoch zu beachten, dass foreach
nur ausgeführt werden, wenn alle Ausgaben von Get-ChildItem
gesammelt. Meiner Meinung nach sollte der meiste Powershell-Code die Pipeline so gut wie möglich verwenden.
Wenn Sie eine große Anzahl von Dateien haben, [System.IO.Directory] :: EnumerateFiles. Es erfordert .NET 4+. Aber es wartet nicht, bis es über alle Dateien iteriert. Was ist ein Problem, wenn Sie Tausende in einem Verzeichnis haben. https://stackoverflow.com/questions/14970692/powershell-io-directory-find-file-types-in-all-subdirectories – TamusJRoyce
@TamusJRoyce: Get-ChildItem sollte auch streamen. Im Gegensatz zu Directory.GetFiles natürlich, die ein Array zurückgibt. – Joey