Как разработчик .NET я нахожу PowerShell очень полезным. Я использую его как интерактивный .NET REPL. Вместо того, чтобы писать небольшие консольные приложения для экспериментов с типами .NET, я часто могу просто попробовать свой эксперимент из командной строки PowerShell. Например, скажем, я хочу выяснить, какую конкретную строку форматирования я хочу использовать для объекта DateTime:
PS> "{0:R}" -f [DateTime]::Now
Mon, 13 Jul 2009 11:15:34 GMT
И, как уже упоминали другие, если вы выполняете какие-либо повторяющиеся задачи, то стоит изучить PowerShell, чтобы вы могли автоматизировать эти задачи. Повторяющиеся задачи подвержены ошибкам и могут буквально причинить вам вред (например, травмы РС). Возьмем, к примеру, циклический просмотр всего вашего источника и удаление всех папок bin и obj:
PS> dir . -r |
where {$_.PSIsContainer -and $_.Name -match '^(bin|obj)$'} |
remove-item -r -whatif
PowerShell также может легко вырезать и нарезать данные XML и WMI с вашего ПК. Хотите узнать информацию о вашем BIOS:
PS> Get-WmiObject Win32_BIOS
Хотите узнать, сколько слотов памяти открыто на вашем компьютере (не снимая крышку):
PS> gwmi Win32_PhysicalMemory |
Format-Table Description, DeviceLocator, Capacity -auto
Кроме того, поскольку механизм PowerShell легко размещается, стоит рассмотреть возможность использования в своих приложениях среды сценариев. Если эти приложения больше похожи на приложения системного администратора, это имеет большой смысл. OTOH для более традиционных скриптов, я бы, вероятно, разместил движок IronPython.