I'm trying to run a PowerShell script from my C# application. I know how to do so with an absolute path:
using (PowerShell pshell = PowerShell.Create())
{
pshell.AddScript( @"C:\Path\To\Webapp\psScript.ps1" );
pshell.Invoke();
}
What I don't know how to do is use a relative path. My psScript.ps1
is located in the same directory as my Visual Studio project, and I'd like to use a relative path (such as ./psScript.ps1
), so that when I publish/export my project to different computers, the path to the script doesn't become invalidated
Sooo, how do I use a relative path in the PowerShell.AddScript() method? Any help would be appreciated!
I looked here but this doesn't answer my question: PowerShell: Run command from script's directory
Use this:
using (PowerShell pshell = PowerShell.Create())
{
string path=System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
pshell.AddScript( path+"\\psScript.ps1" );
pshell.Invoke();
}
This path is always relative to the root folder of your project.
Add your script to project and set Copy to output directory
property to Copy always
or Copy id newer
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