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 说它们不存在。我究竟做错了什么?

回答

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

.调用时使用点源运算符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帮助主题

  • Alternatively, `function global:First-Function` inside `Setup-One` overrides the scope on a per-declaration basis (what's more convenient varies by how much you intend to expose).

以上是PowerShell-调用在另一个函数中创建的函数的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>