Раздел: Tutorial

Функции PowerShell

Функция — это подпрограмма (блок кода) со своим названием (именем), которая может быть вызвана в любом месте вашего кода (программы) любое количество раз. Основное отличие функции от сценария состоит в том, что сценарий содержит код вне оболочки PowerShell (в файле .ps1), а функция находится в памяти текущего сеанса.

В основном, функция создаётся по следующему шаблону:

function имя_функции{тело_функции}

и, как и переменная, вызывается по её имени:

У функции, как и у командлета, могут быть параметры. Рассмотрим определение и вызов функции с одним параметром:

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

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

Или, можно использовать переменную $args, сохраняющую все параметры данной функции:

По умолчанию, указанные параметры на выходе разделяются пробелами. Символ, разделяющий эти элементы, можно переопределить, изменив значение специальной переменной $OFS :

На самом деле, мы мы рассмотрели укороченные варианты(шаблоны) задания функции. У функций есть более общая структура:

function имя_функции {
параметр(ы)
Begin{код, выполняемый однократно до начала тела функции}
Process{основное тело функции}
End{код, выполняемый однократно после основного тела функции}
}

Например:

В разделе Begin можно задавать, например, значения переменных. Следует понимать, что эти переменные будут локальными и их значения вне функции не изменятся. приведём пример, в котором видно, что значение переменной, заданное до выполнения функции не изменилось и после её выполнения, несмотря на то, что внутри функции мы присваивали этой переменной другое значение:

Именно таким способом переменные разделяются на локальные (доступные для обработки только внутри данной функции) и глобальные (доступные для обработки в любом месте кода, в том числе и в функциях).

Комментировать

Комментарии

18 − пятнадцать =