4 Review: Parameter binding and the PowerShell pipeline

 

Take traditional pipeline behavior from shells like Bash and Cmd.exe and mix in PowerShell’s unique object-oriented nature. Now add a dash of Linux-style command parsing and what is the result? PowerShell’s pipeline, a fairly complex and deeply powerful tool for composing tools into administrative solutions. To be a toolmaker is to understand the pipeline at its most basic level, and to create tools that take full advantage of the pipeline. Although we covered these concepts in Learn Windows PowerShell in a Month of Lunches, in this chapter we’ll go deeper and focus on the pipeline as something to write for, rather than to just use.

4.1 The Operating System

Lets start with a little practice exercise. Grab a sheet of paper (or a tablet you can write on) and draw something similar to what you see below in Figure 4.1. Now, write some command names in those boxes. Maybe Get-Process in the first box, maybe ConvertTo-HTML in the second box, and perhaps Out-File in the third box.

Figure 4.1 Visualizing the Pipeline
04_01
TRY IT NOW

Go on—actually draw the boxes. We could have just repeated the finished figure here in the book, and believe us, our editor wanted us to, but there’s value in you doing this physical thing for yourself.

4.2 It’s all in the parameters

4.3 Pipeline: ByValue

4.3.1 Introducing Trace-Command

4.3.2 Tracing ByValue parameter binding

4.3.3 When ByValue fails

4.4 ByPropertyName

4.4.1 Let’s trace ByPropertyName

4.4.2 When ByPropertyName fails

4.4.3 Planning ahead

4.5 Summary

sitemap