0

Start.Process を使用して C# から Powershell カスタム関数を実行しようとしています。

Powershell スクリプトを実行するには Powershell クラスを使用する必要があることはわかっていますが、セットアップ プロジェクトで使用されるカスタム アクションで Powershell スクリプトを呼び出しているため、x86、x64 プラットフォームで問題が発生しています。

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 に答える