Frank Koch of Microsoft Switzerland has released a free mini-book on Windows PowerShell.
Windows PowerShell is a replacement for the DOS-based command prompt currently distributed with Windows. Inspired by the powerful shells found in Linux, PowerShell gives administrators full access to COM and .NET libraries from the command prompt.
One of the key topics covered by this book is piping. Unlike UNIX based shells, PowerShell doesn't pipe just text. Instead, it is based on the ability to pipe objects from one command to the next.
For example, consider this command.
get-wmiobject -class win32_computersystem | get-member | sort name
The first part gets the WMI object Win32.ComputerSystem.
In order to get a list of methods on the object, it is piped to the get-member command.
Finally, the list is piped to the sort command.
The concept of file systems and objects have been merged in PowerShell. This allows you to register an object model and explore it like a file system. Built-in "drives" include the Windows Registry, certificate stores, environmental variables, and aliases. There is even a "Variable" drive for working with shell variables. Just as in an actual drive, features such as Tab Completion work in these pseudo-drives.
Other interesting tricks found in this book include PowerShells support for numeric constants. Wherever numbers are allowed, one can write "512KB" and the shell will automatically convert into bytes. The suffix MB and GB are also supported.
You can download the book and sample code from the Scattered Notes blog.
Community comments
I Love Powershell!
by John DeHope,
Re: I Love Powershell!
by Alex Popescu,
I Love Powershell!
by John DeHope,
Your message is awaiting moderation. Thank you for participating in the discussion.
Thanks for this link. A friend of mine turned me on to powershell recently and I must say MS has really outdone themselves with this one. Now if I could just get my company to let me install it!
Re: I Love Powershell!
by Alex Popescu,
Your message is awaiting moderation. Thank you for participating in the discussion.
What were the features that sold you out to PowerShell? (I had it on my todo list for quite a while and never got to it...)
./alex
--
.w( the_mindstorm )p.
________________________
Alexandru Popescu
Senior Software Eng.
InfoQ TechLead&CoFounder