Try this cmdlet. (It may try to get you to install a program to read the “about” box. If so, ignore it.)
You get a succinct list of the web page’s content declarations, headers, images, links, and more. See how that works? Notice in the
get-help listing for
invoke-webrequest that the
invoke-webrequest cmdlet “returns collections of forms, links, images, and other significant HTML elements” -- exactly what you should see on your screen.
Some cmdlets help you control or grok PowerShell itself:
get-command: Lists all available cmdlets (it’s a long list!)
get-verb: Lists all available verbs (the left halves of cmdlets)
clear-host: Clears the display in the host program
Various parameters (remember,
get-help) let you whittle down the commands and narrow in on options that may be of use to you. For example, to see a list of all the cmdlets that work with Windows services, try this:
It lists all the verbs that are available with
service as the noun. Here’s the result:
You can combine these cmdlets with other cmdlets to dig down into almost any part of PowerShell. That’s where pipes come into the picture.
Step 6: Bring in the pipes
If you’ve ever used the Windows command line or slogged through a batch file, you know about redirection and pipes. In simple terms, both redirection (the
> character) and pipes (the
| character) take the output from an action and stick it someplace else. You can, for example, redirect the output of a
dir command to a text file, or “pipe” the result of a
ping command into a
find, to filter out interesting results, like so:
dir > temp.txt
ping askwoody.com | find “packets” > temp2.txt
In the second command above, the
find command looks for the string
packets in the piped output of an askwoody.com
ping and sticks all the lines that match in a file called
Perhaps surprisingly, the first of those commands works fine in PowerShell. To run the second command, you want something like this:
ping askwoody.com | select-string packets | out-file temp2.txt
Using redirection and pipes greatly expands the Windows command line’s capabilities: Instead of scrolling endlessly down a screen looking for a text string, for example, you can put together a piped Windows command that does the vetting for you.
PowerShell has a piping capability, but it isn’t restricted to text. Instead, PowerShell lets you pass an entire object from one cmdlet to the next, where an “object” is a combination of data (called properties) and the actions (methods) that can be used on the data.
The hard part, however, lies in aligning the objects. The kind of object delivered by one cmdlet has to match up with the kinds of objects accepted by the receiving cmdlet. Text is a very simple kind of object, so if you’re working with text, lining up items is easy. Other objects aren’t so rudimentary.
Sign up for CIO Asia eNewsletters.