首页 > 解决方案 > PowerShell - 调用在另一个函数中创建的函数

问题描述

当我运行这个:

function Setup-One{

    function First-Function{
    Write-Host "First function!"
    }

    function Second-Function{
    Write-Host "Second function!"
    }
}
Setup-One

而且比我所说的First-Functionor Second-Function,PS 说它们不存在。我究竟做错了什么?

标签: windowsfunctionpowershellscope

解决方案


函数定义是作用域的,这意味着当您离开定义它们的作用域时,它们不再存在。

调用 时使用.点源运算符Setup,从而将嵌套函数保留在调用范围内:

function Setup-One{

    function First-Function{
    Write-Host "First function!"
    }

    function Second-Function{
    Write-Host "Second function!"
    }
}
. Setup-One

# Now you can resolve First-Function/Second-Function
First-Function
Second-Function

有关PowerShell 中范围界定的详细信息,请参阅about_Scopes帮助主题


推荐阅读