How do you write a powershell function that reads from piped input?
You also have the option of using advanced functions, instead of the basic approach above:
function set-something { param( [Parameter(ValueFromPipeline=$true)] $piped ) # do something with $piped}
It should be obvious that only one parameter can be bound directly to pipeline input. However, you can have multiple parameters bind to different properties on pipeline input:
function set-something { param( [Parameter(ValueFromPipelineByPropertyName=$true)] $Prop1, [Parameter(ValueFromPipelineByPropertyName=$true)] $Prop2, ) # do something with $prop1 and $prop2}
Hope this helps you on your journey to learn another shell.