Наверняка вы уже наслышаны о том что в следующей версии PowerShell будет доступна графическая консоль/редактор, который называется PowerShell ISE (Integrated Scripting Environment). В этом посте я постараюсь рассказать о том что это такое, и зачем оно нужно 🙂
Как видно из этого скриншота, ISE является полноценным редактором с подсветкой кода, закладками (табами), и возможностью выполнения интерактивных команд. Это крайне удобно при написании сценариев: можно легко протестировать команду, и затем добавить её в основной код. Или наоборот выполнить несколько строк выделенных в открытом файле.
Кроме этого ISE автодополняет набираемый код по нажатию Tab как в командной строке, так и в файлах скрипта. Естественно автодополняются не только названия команд, но и параметры, имена переменных, и т.д., так же как и в привычной консоли.
Еще в ISE встроен отличный отладчик. Ввы можете расставлять брейкпойнты (F9), запускать пошаговое выполнение, просматривать содержимое переменных наводя на них курсор, и т.д,:
Когда я первый раз увидел ранние версии этой утилиты, я сразу захотел иметь возможность открыть несколько закладок, с интерактивными сессиями PowerShell на других компьютерах. К сожалению тогда это было невозможно. Но сейчас, в Windows 7 (или PowerShell CTP3) нет ничего проще! 😉
В PowerShell ISE доступен специальный объект, $PsISE, с помощью которого можно управлять интерфейсом утилиты, и даже расширять его, например добавляя свои собственные элементы меню.
Так как ISE создавался с нуля, для PowerShell, он не страдает болезнями доставшимися PowerShell.exe от консольной подсистемы Windows (которая почти не изменилась со времен Windows 2000). Так например он изначально, полностью, стопроцентно поддерживает Unicode, и в нем можно легко менять шрифты, и их размер. Но у всего хорошего есть цена… В PowerShell не получится выполнять команды которые привыкли работать с экраном консоли напрямую. Это относится например к интерактивным режимам cmd.exe, netsh или diskpart. Нет, вы вполне сможете использовать эти утилиты, но вот войти в их интерактивный “subshell” не получится.
Еще много всего интересного про PowerShell ISE можно прочитать в блоге разработчиков,
3.10.2009 в 23:47
На счёт Unicode сам он его поддерживает, но сохраняет файлы в Big Endian, что приводит к разным нехорошим последствиям.