I was reading about how pipeline works in PowerShell at about_Pipelines, and got to know that pipeline delivers one object at a time.
So, this
Get-Service | Format-Table -Property Name, DependentServices
Is different from this
Format-Table -InputObject (Get-Service) -Property Name, DependentServices
So here, going by the explanation, in the first case, the Format-Table
works on one object at at time and in the second example, Format-Table
works on an array of objects. Please correct me if I am wrong.
If this is the case, then I wonder how does Sort-Object
and other cmdlets that need to work on collections of data work with pipe character.
When I do :
Get-Service | Sort-Object
How is Sort-Object
able to sort if it just gets to work with one object at a time. So, assume there are 100 service objects that are to be passed to Sort-Object
. Will Sort-Object
be called 100 times (each for one object) ? And, How will that yield in Sorted results that I see on the screen.