0

我正在尝试使用 Start.Proccess 从 c# 执行 Powershell 自定义函数,

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

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

在 powershell 中,您需要先加载脚本,将函数放置在 ". .[scriptPath]" 中,然后调用该函数,但在 C# 中我不知道该怎么做。

4

1 回答 1

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> + "}\"");
于 2013-01-02T23:21:18.293 回答