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

О функциях

Функции — это тип команд в Windows PowerShell. Для запуска функции введите ее имя, точно так же, как и для командлета. Как и командлеты, функции могут иметь параметры. Как и командлеты, функции могут использовать объекты .NET в качестве источника ввода и выводить объекты .NET. Фактически функции обладают теми же возможностями, что и командлеты.

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

Поиск функций

Функции являются командами, и поэтому для поиска функций используйте командлет Get-Command.

Например, чтобы найти все функции текущего сеанса, введите команду:

get-command -CommandType function

Кроме того, в Windows PowerShell имеется диск Function:, содержащий все функции текущего сеанса. Для просмотра диска Function: используйте те же методы, что и для просмотра дисков файловой системы.

Чтобы открыть диск функций, введите:

cd function:

Чтобы вывести функции с диска функций, введите:

dir function:

Запуск функций

Для запуска функции нужно просто ввести ее имя. Например, для запуска функции Clear-Host введите следующую команду:

clear-host

В консоли Windows PowerShell функция Clear-Host служит для удаления всего текста из окна консоли. В других приложениях эта функция может иметь другое действие или не иметь никакого действия.

Чтобы использовать параметры функции, введите имя параметра с дефисом перед ним и значением после него, точно так же, как и при вводе параметров командлета.

Например, функция Help, выводящая разделы справки постранично, имеет те же параметры, что и командлет Get-Help. Чтобы использовать функцию Help для вывода только примеров из раздела справки для командлета Get-Service, введите следующую команду:

help -name get-service -examples

Получение справки о функциях

Для функций могут существовать разделы справки. Чтобы найти раздел справки для функции, используйте командлет Get-Help. Это тот же командлет, что используется для получения справки по командлетам.

Например, для получения справки по функции Disable-PSRemoting, введите следующую команду:

get-help Disable-PSRemoting

Для получения справки по функциям можно использовать любые параметры командлета Get-Help. Например, чтобы получить примеры из раздела справки для функции Disable-PSRemoting, введите следующую команду:

get-help Disable-PSRemoting -example

Создание функций

Функция представляет собой именованную группу команд или выражений. Чтобы написать простую функцию, используйте следующий формат.

function <name> { <commands> }

Введите ключевое слово function и имя функции и заключите команды в фигурные скобки ({ }).

Например, если какая-то команда, например, get-help get-member -examples, используется часто, для экономии времени можно написать функцию, исполняющую эту команду. Следующая функция с именем GMEX исполняет эту команду.

function GMEX {get-help get-member -examples}

После ввода в командной строке Windows PowerShell (или после копирования и вставки из этого раздела) и нажатия клавиши ENTER эту функцию можно будет использовать в текущем сеансе. Для исполнения функции введите команду GMEX.

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

Дополнительные сведения о написании функций см. в разделах about_Functions, about_Comment_Based_Help и about_Functions_Advanced.

Сохранение функций

При запуске Windows PowerShell открывается ее сеанс. Сеанс длится, пока не закрывается окно Windows PowerShell (или пока сеанс не завершается с помощью команды Exit). Элементы, созданные во время сеанса, удаляются при его закрытии, если они не сохранены в файле на диске или в реестре.

Для использования функций в будущих сеансах Windows PowerShell нужно создать профиль Windows PowerShell и сохранить эти функции в нем.

Дополнительную информацию см. в разделе about_Profiles.

См. также