Reputation: 145
When I run this:
function Setup-One{
function First-Function{
Write-Host "First function!"
}
function Second-Function{
Write-Host "Second function!"
}
}
Setup-One
And than I call First-Function
or Second-Function
, PS says that they don't exist. What am I doing wrong?
Upvotes: 3
Views: 1225
Reputation: 175085
Function definitions are scoped, meaning that they stop existing when you leave the scope in which they were defined.
Use the .
dot-source operator when invoking Setup
, thereby persisting the nested functions in the calling scope:
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
See the about_Scopes
help topic for moreinformation on scoping in PowerShell
Upvotes: 10