PowerShell側で引数を指定されていた場合だと
以前までのメソッドでは動かなかったので更新してみました。
PowerShellソース
今までのメソッドでは$inputを使用していれば問題なかったのですが、
下記の様にParamで指定されていた場合は使い物になりません。
[CmdletBinding()]
Param(
[Parameter(Mandatory=$True,Position=1)]
[string]$Test1,
[Parameter(Mandatory=$True)]
[string]$Test2
)
Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.MessageBox]::Show($Test1, $Test2)
クラス更新内容
更新したソースについては「ExecPowerShell」に公開しています。
C# 対応版サンプル
今回追加したメソッドを使用することで、下記のようにPowerShellを実行することが可能です。
namespace PSExecTest
{
using ExecPowerShell;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{
ExecPS execPs = new ExecPS();
List<ExecPS.ParamStruct> paramList = new List<ExecPS.ParamStruct>();
ExecPS.AddParam(ref paramList, ExecPS.paramType.PARAMETER, "Test1", "ほげほげ");
ExecPS.AddParam(ref paramList, ExecPS.paramType.PARAMETER, "Test2", "すごーい!");
execPs.ExecPowerShell("./test2.ps1", paramList);
}
}
}
全然休めてないから眠い…
