PowerShell -Command .\Foo.ps1
Foo.ps1
:Function Foo($directory) { echo $directory } if ($args.Length -eq 0) { echo "Usage: Foo <directory>" } else { Foo($args[0]) }
Despite
Foo.ps1
being in the directory from where I am calling Powershell, this results in:The term '.\Foo.ps1' 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.
- EDIT: Wasn't working because PowerShell was changing directory due to
profile.ps1
containingcd C:\
- EDIT: Wasn't working because PowerShell was changing directory due to
I then tried to call it specifying the full path to the script file, but no matter what I try, I can't get it to work. I believe I have to quote the path because it contains whitespaces, as does the file name I need to pass in an argument to the script.
Best guess so far:
PowerShell -Command "'C:\Dummy Directory 1\Foo.ps1' 'C:\Dummy Directory 2\File.txt'"
Outputs error:
Unexpected token 'C:\Dummy Directory 2\File.txt' in expression or statement. At line:1 char:136.