Pipelining - Objekte¶
Die PowerShell arbeitet objektorientiert! Der Pipeline Operator ( | Pipe) stellt mehr dar, als einfach nur die „Weitergabe“ von Objekten an das Folge-Cmdlet. Vielmehr werden durch den Pipeline-Prozessor die Daten verarbeitet und aufbereitet.
Get-Process | Format-List
komplexere Pipeline:
Get-ChildItem e:\_temp –r -filter *.txt |
Where-Object { $_.Length -gt 40000 } |
Select-Object Name, Length |
Sort-Object Length |
Format-List
Der besondere Bezeichner $_ greift auf das aktuelle Objekt zu.
Neu: $PSItem als gleichwertiger Ersatz zu $_ (seit PowerShell 3.0)
Get-Process | Where-Object {$_.name -eq "iexplore"} |
Format-Table ProcessName, WorkingSet64
Alle Prozesse, die mehr als 20 MB verbrauchen:
Get-Process | Where-Object {$_.WorkingSet64 -gt 20*1024*1024 }
kurze Variante (kann man so nur für die Befehlszeile nutzen! Stichwort: Quick and Dirty)
ps | ? {$_.ws -gt 20MB }
alle Dienste, die mit i beginnen
"i*" | Get-Service
Dienst „gleich“ BITS
"BITS" | Get-Service
Anm.: Erklärung für dieses Verhalten mit Get-Help Get-Service –full (siehe nach -name Pipelineeingaben akzeptieren byValue und byPropertyName)
Pipeline-Bilder (nach Schwichtenberg; S. 62/63; s.a. it-visions.de - Cheat Sheet)
Pipeline Schwichtenberg - ehemals auf entwickler.de Portal

Pipeline Technik¶
Auch die klassischen Befehle lassen sich pipen (Select-String für reguläre Ausdrücke)
netstat | Select-String "HERGESTELLT" -case
Hier weitere Abschnitte zum Thema: