Is this possible if I only have one function in the file named the same as the file? I seem to remember reading about it before. Something like this:
hello.ps1
By default, the function hello will only be accessible at script scope unless you dot-source the script. That means, once the script exits, it is no longer visible. If you want it available outside of hello.ps1 without dot-sourcing, you can declare the function at global scope:
function global:hello {
Write-Host 'Hello, world'
}
Then you can just execute the script and then call the function:
PS C:\temp> .\hello.ps1
PS C:\temp> hello
Hello, world
For more info on powershell scopes, check out the help.
If you want to just have the code in the function execute, just don't surround it by a function declaration. In hello.ps1
:
Write-Host 'Hello, world'
Then just call it:
PS C:\temp> .\hello.ps1
Hello, world