Given the following say-hello.ps1
file on my file system:
function SayHello()
{
return "Hello World!"
}
called on the command line like so (it will eventually run as a Windows Scheduled Task):
powershell -ExecutionPolicy unrestricted -command "& { c:\say-hello.ps1; SayHello }"
Why am I getting the following result?
SayHello : The term 'SayHello' is not recognized as the name of a cmdlet,
function, script file, or operable program. Check the spelling of the name, or
if a path was included, verify that the path is correct and try again.
At line:1 char:33
+ & { c:\say-hello.ps1; SayHello }
+ ~~~~~~~~
+ CategoryInfo : ObjectNotFound: (SayHello:String) [], CommandNot
FoundException
+ FullyQualifiedErrorId : CommandNotFoundException
The scope of the script file c:\say-hello.ps1
ends when the script terminates. You can dot source the file (note the .
before the PS1) if you would like its contents to run within the current scope -- the script block enclosed with curlies {...}
:
powershell -ExecutionPolicy unrestricted -command "& { . c:\say-hello.ps1; SayHello }"
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