У меня есть несколько вспомогательных функций PowerShell в файле.Я хотел бы сделать их доступными для области действия другого файла, который я пишу, но не загрязняю глобальную область.
Helpers.ps1
function global:Helper1
{
# this function pollutes the global scope
}
function Helper2
{
# this function is not visible to the Utility.ps1 file.
}
Utilities.ps1
&{
./Helpers.ps1
function global:Utility1
{
Helper1
}
function global:Utility2
{
Helper2
}
}
Я нашел этот вопрос: Как динамически создавать функции, доступные в родительской области? , но ответы обсуждают добавление функций в глобальную область.То, что я действительно хочу сделать, это сделать функции Helper из одного файла PS1 доступными для вызывающего файла PS1, без , не загрязняющего глобальную область с помощью помощников.
Я хочу избежать определения функцийв качестве переменных, что возможно с помощью Set-Variable и параметра -Scope.Самое близкое, что я видел (из связанной ветки) - это использование Set-Item в функции: drive.
Любая помощь будет принята!
Редактировать: вот решениерасширен от ответа Майкасодержание в области действия служебной функции.Помещение Helpers.ps1 за пределы функции Utility приводит к тому, что он находится в области & {...}, но эта область заканчивается после определения функций.