Командлет Windows PowerShell Get-Command извлекает имена всех имеющихся команд. При вводе команды Get-Command в командную строку Windows PowerShell отображаются данные, подобные следующим:

PS> Get-Command
CommandType     Name                            Definition
-----------     ----                            ----------
Cmdlet          Add-Content                     Add-Content [-Path] <String[...
Cmdlet          Add-History                     Add-History [[-InputObject] ...
Cmdlet          Add-Member                      Add-Member [-MemberType] <PS...
... 

Этот вывод выглядит очень похоже на вывод справки интерфейса Cmd.exe: перечень внутренних команд в форме таблицы. В показанном выше фрагменте для вывода команды Get-Command каждая команда имеет значение параметра CommandType, равное Cmdlet (командлет). Командлет является типом внутренней команды оболочки Windows PowerShell, примерно соответствующим командам dir и cd интерфейса Cmd.exe и командам, встраиваемым в оболочки ОС UNIX, например BASH.

В выводе команды Get-Command все определения заканчиваются многоточием (...), показывающим, что PowerShell не может отобразить все содержание в доступном пространстве. Когда оболочка Windows PowerShell отображает конечные данные, она форматирует вывод как текст и затем выстраивает его таким образом, чтобы данные точно умещались в окне. Это будет рассмотрено позднее в разделе, посвященном механизмам форматирования.

Командлет Get-Command имеет параметр Syntax, позволяющий извлекать только синтаксис каждого командлета. Для отображения полного вывода введите команду Get-Command -Syntax:

PS> Get-Command -Syntax
Add-Content [-Path] <String[]> [-Value] <Object[]> [-PassThru] [-Filter <String>] [-Include <String[]>] [-Exclude <String[]>] [-Force] [Credential <PSCredential>] [-Verbose] [-Debug] [-ErrorAction <ActionPreference>] [-ErrorVariable <String>] [-OutVariable <String>] [-OutBuffer <Int32>] [-WhatIf] [-Confirm] [-Encoding <FileSystemCmdletProviderEncoding>]

Add-History [[-InputObject] <PSObject[]>] [-Passthru] [-Verbose] [-Debug] [-ErrorAction <ActionPreference>] [-ErrorVariable <String>] [-OutVariable <String>][-OutBuffer <Int32>]...

Отображение имеющихся типов команд

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

Можно получить распечатку всех элементов, которые могут быть вызваны, вводом следующей команды:

PS> Get-Command *

Так как этот список включает в себя внешние файлы на пути поиска, он может содержать тысячи элементов. Имеет больший смысл сокращенный набор команд. Для нахождения собственных команд других типов можно использовать параметр CommandType командлета Get-Command. Хотя еще ничего и не было сказано об этих командах другого типа, их можно отобразить, если знать имя CommandType для класса команд.

Примечание.

Хотя мы это еще и не обсуждали, звездочка (*) используется в аргументах команды Windows PowerShell для сравнения на совпадение с учетом подстановочных знаков. * означает "совпадение одного или нескольких любых знаков". Для поиска команд, начинающихся с буквы "a", можно ввести Get-Command a*. В отличие от сравнения на совпадение с учетом подстановочных знаков в Cmd.exe, подстановочный знак оболочки Windows PowerShell учитывает также и точку.

Для отображения псевдонимов категории специальных команд (имеются имена, альтернативные стандартным именам команд), введите следующую команду:

PS> Get-Command -CommandType Alias

Для отображения всех функций Windows PowerShell введите следующую команду:

PS> Get-Command -CommandType Function

Для отображения внешних скриптов в пути поиска Windows PowerShell введите следующую команду:

PS> Get-Command -CommandType ExternalScript




Содержание