С недавних пор начал использовать Windows PowerShell. Но буквально через час работы со скриптами встал вопрос об удобной IDE, в которой есть подсветка синтаксиса и отладка. Штатный PowerShell ISE из 3-й версии, в общем-то, годится для простых задач (основное там есть), но визуально он не очень, с ним ощущаешь какой-то дискомфорт.
Я стал искать альтернативы и довольно быстро нашлась хорошая бесплатная ISE — PowerGUI Script Editor, в которой есть:
- IntelliSense — и в области редактора скриптов, и в области консоли, при этом не только дополняется имя, но и сразу же отображается краткая информация по командлету;
- Пошаговая отладка и просмотр переменных;
- Интерфейс — весьма похож на Visual Studio 2008, и что важно — такие же горячие клавиши в отладке и при редактировании.
- Есть готовые сниппеты кода, поддерживаются плагины.
Но PowerGUI почему-то использовал PowerShell 2, а не 3, что не позволяло мне использовать новые возможности, например, в часто используемом Get-ChildItems нет ключа –Attributes (и это то, что выяснилось сразу).
Как оказалось, всё решается просто — с помощью дополнительного ключа командной строки -version 3.0, т.е. надо изменить команду в ярлыке на такую:
"C:\Program Files (x86)\PowerGUI\ScriptEditor_x86.exe" -version 3.0
После чего PowerGUI начинает использовать PowerShell 3.0 (это можно проверить, просмотрев $PSVersionTable).
Кстати, для Visual Studio 2010 есть расширение PowerGUI VSX, благодаря которому можно удобно редактировать PowerShell скрипты прямо в Visual Studio, но я его не ставил.
Если интересно, зачем мне PowerShell, то объясню:
- Мне понадобился «повседневный» скриптовый язык, чтобы автоматизировать рутинные задачи с минимальными затратами сил (CMD/BAT-скрипты имеют совсем уж базовые возможности, а каждый раз писать программу — долго).
- В PowerShell есть всё лучшее, что есть в Unix shell и Perl, но сделано даже лучше, т.к. везде используются объекты, в т.ч. через конвейеры передаются объекты, а не текст.
- Из скриптов PowerShell доступна вся мощь .Net BCL, в т.ч. можно создавать оконные (!) приложения (WinForms доступны «из коробки», WPF — после установки модуля).
- Легко взаимодействовать с COM (например, с Excel)
- PowerShell идёт в комплекте с Windows 7 (версия 2.0).