Конструкция оболочки Windows PowerShell объединяет в себе концепции многих различных сред. Многие из них знакомы людям, имеющим опыт работы со специальными оболочками или работы в средах программирования, но очень немногие люди имеют полное представление об этих оболочках. Рассмотрение некоторых из этих концепций дает возможность сделать полезный обзор оболочки.

Объектно-ориентированные команды

В отличие от традиционных команд с интерфейсом командной строки, командлеты оболочки Windows PowerShell предназначены для работы с объектами, представляющими собой структурированную информацию, являющуюся более чем строкой символов на экране. Вывод команды всегда содержит дополнительную информацию, которую при необходимости можно использовать. В этом документе мы будем более подробно обсуждать эту тему.

Если ранее использовались средства обработки текста для обработки данных командной строки, то при их использовании в оболочке Windows PowerShell вы обнаружите, что их функционирование выглядит несколько иначе. В большинстве случаев для извлечения специальной информации нет необходимости в применении средств обработки текстовых данных. Получить доступ к данным можно непосредственно с помощью обычных команд обработки объектов оболочки Windows PowerShell.

Семейство команд может расширяться

Такие интерфейсы, как Cmd.exe, не предоставляют способа непосредственного расширения встроенного набора команд. Можно создать внешние средства командной строки, выполняющие Cmd.exe, но эти внешние средства не имеют служб, таких как интеграция справки, и Cmd.exe не может автоматически знать, что это допустимые команды.

Внутренние двоичные команды Windows PowerShell, называемые командлетами, могут дополняться командлетами, создаваемыми пользователем и добавляемыми им в оболочку Windows PowerShell при помощи оснасток. Оснастки оболочки Windows PowerShell компилируются так же, как и двоичные средства любого другого интерфейса. Их можно использовать для добавления в оболочку поставщиков Windows PowerShell, так же, как и новых командлетов.

Из-за специальной природы внутренних команд Windows PowerShell мы будем называть их командлетами.

Примечание.

Оболочка Windows PowerShell может выполнять и другие команды, отличные от командлетов. Здесь, в Руководстве пользователя Windows PowerShell, мы не будем их подробно рассматривать, но о них полезно знать как о категориях команд разного типа. Оболочка Windows PowerShell поддерживает скрипты, аналогичные скриптам оболочки UNIX и пакетным файлам Cmd.exe, но имеющие в имени файла расширение PS1. Windows PowerShell позволяет также создавать внутренние функции, которые могут использоваться непосредственно в интерфейсе или в скриптах.

Как Windows PowerShell обрабатывает входные данные и дисплей консоли

При вводе команды оболочка Windows PowerShell всегда непосредственно обрабатывает вход командной строки. Кроме того, оболочка Windows PowerShell форматирует данные, отображаемые на экране. Это важно, так как это снижает объем работы, производимой каждым командлетом, и гарантирует то, что процесс выполняется одинаковым образом, независимо от того, какие командлеты используются. На примере справки командной строки можно продемонстрировать, насколько облегчается работа разработчиков средств и пользователей.

Традиционные средства командной строки содержат свои собственные схемы для запроса и отображения справки. Некоторые средства командной строки для отображения справки используют /?, другие используют -?, /H или даже //. Некоторые отображают справку в окне интерфейса GUI, а не на дисплее консоли. Некоторые сложные средства, такие как средства обновления приложений, распаковывают внутренние файлы перед отображением их справки. При использовании пользователем неверного параметра средство может пропустить то, что введено пользователем, и начать выполнять задачу автоматически.

При вводе команды в оболочке Windows PowerShell производится автоматический разбор и предварительная обработка всех вводимых данных. Если с командлетом Windows PowerShell используется параметр -? , это всегда означает: "покажи мне справку для этой команды". Разработчики командлетов не должны синтаксически анализировать команды; все, что от них требуется — предоставить текст справки.

Важно понять, что функции справки Windows PowerShell доступны, даже если в оболочке Windows PowerShell выполняются традиционные средства командной строки. Оболочка Windows PowerShell обрабатывает параметры и передает результаты во внешние приложения.

Примечание.

При выполнении в Windows PowerShell графического приложения для него открывается окно. Оболочка Windows PowerShell вмешивается в работу приложения только тогда, когда необходима обработка данных командной строки, вводимых пользователем, или вывода приложения, отображаемого в окне консоли. На внутреннюю работу приложения оболочка Windows PowerShell не оказывает никакого влияния.

Windows PowerShell использует некоторые черты синтаксиса C#

Оболочка Windows PowerShell имеет синтаксические особенности и ключевые слова, сходные с применяемыми в языке программирования C#, так как оболочка Windows PowerShell основана на .NET Framework. Зная Windows PowerShell, гораздо легче изучить C#, если необходимо научиться программировать на этом языке.

Для пользователей, не занимающихся программированием на C#, такое сходство не так важно. С другой стороны, зная C#, это сходство может значительно облегчить изучение Windows PowerShell.