使用Start.Process从c sharp调用Powershell函数

时间:2013-01-02 10:49:10

标签: c#-4.0 powershell

我正在尝试使用Start.Proccess,

从c#执行Powershell自定义函数

我知道我们应该使用Powershell类来执行powershell脚本,但我遇到了x86,x64平台的问题,因为我在安装项目使用的自定义操作中调用Powershell脚本。

那么你能告诉我如何使用Start.Process调用Powershell自定义函数吗?

在powershell中,您需要首先使用“.. [scriptPath]”加载函数,然后调用该函数,但在C#中我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

如果您可以控制函数脚本,只需从脚本中调用该函数,这样可以更容易地从PowerShell.exe调用,例如:

-- script.ps1 --
function DoAction($p1, $p2) {
    ...
}

DoAction someArg anotherArg

然后调用脚本:

string sysdir = Environment.GetFolderPath(Environment.SpecialFolderPath.System);
Process.Start(sysdir + "\WindowsPowerShell\v1.0\Powershell.exe", "-Command \"& {" + <path-to-script> + "}\"");