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?
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With