【C#】PowerShell関連のクラスについて(その2)

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);
        }
    }
}

全然休めてないから眠い…

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です