If your job entails administrating Windows or Windows Server then the answer is a definite YES. Most of the new Microsoft server products coming out will be administered via PowerShell - at least from the command line. In most cases there will still be a GUI that layers over top of the PowerShell cmdlets. In fact, this directive is part of Microsoft's Common Engineering Criteria (CEC) for server products.
If you are more of a developer then I would still say YES because I believe it is in every developer's best interest to have mastered a powerful shell (er PowerShell :-)). There are quite a few file system and computer admin tasks we need to perform as developers. PowerShell can really help make you more productive at this stuff especially with it's great support for XML and WMI. Want to load up an XML doc as a .NET System.Xml.XmlDocument object? It is as easy as this:
[xml]$xmlDoc = Get-Content web.config
You mentioned screen scraping. This is pretty simple with PowerShell with its strong regex support. You can also couple that with the XML support to process RSS easily e.g.:
$url = "http://blogs.msdn.com/powershell/rss.xml"
[xml]$xml = (new-object System.Net.WebClient).DownloadString($url)
$xml.rss.channel | Foreach {$_.item} |
Where {[DateTime]$_.pubDate -gt (Get-Date).AddMonths(-1)} |
Format-Table Title
Let me add that I am developer doing mostly .NET/C# work on a daily basis. I still find PowerShell useful for several things:
- Experimenting with .NET right from
the command prompt. I think of
PowerShell as a .NET REPL. I no
longer need to create
ConsoleApplication42 to test out some
.NET object or API.
- Launching EXEs and performing file system
oriented operations are much, much
easier to script in a shell than to code
in C# using Process.Start(), FileInfo and friends.
- Slicing and dicing XML is quite a bit
easier in PowerShell than the
equivalent C# code. If I were
writing a commercial app, then yeah I
would do it in C#. But if I need a
one-off solution I would use
PowerShell. In fact, recently I
wrote a simple PowerShell script to
do mass modifications to ~260 VC++
project files. Doing that by hand
would have sucked!
Check out Scott Hanselman's 2009 Ultimate Developer & Power Users Tool List - notice that PowerShell is in the big ten life and work-changing utilities!! Amen, brother. Amen. :-)
BTW if you are just dipping your toes in the PowerShell waters be sure to check out these free resources. I have an ~50 page free eBook called Effective Windows PowerShell which will give a good mental model for how PowerShell works. Dr. Tobias Weltner also has a free book online called Mastering PowerShell. If you ever get to the point you want to spend money the definitive book is Windows PowerShell in Action.