2017-03-29 5 views
1

C#でパラメータ値としてコマンドレットを渡すにはどうすればよいですか?言い換えれば、.NETのそれに相当するものは次のようなものでしょうか?.NETでパラメータ値としてコマンドレットを渡す方法

var ps = PowerShell.Create(session); 
ps.AddComand("Get-Content").AddParameter("Path", "(Some-Cmdlet)"); 

しかし、文字列 "(一部-コマンドレット)は、" そのまま渡されます:

PS> Get-Content -Path (Some-Cmdlet) 

は、私は、次のコードを持っています。それは解釈されません。私も試みた:

var ps = PowerShell.Create(session); 
var cmd = new Command("Some-Cmdlet"); 
ps.AddComand("Get-Content").AddParameter("Path", cmd); 

残念ながら、それは同じ結果を与えます。 Commandオブジェクトを評価するのではなく、ToString()を呼び出しているようです。

答えて

0

パラメータ値を評価する方法がないようです。私が発見できるものから、AddCommandの代わりにAddScriptを使用する必要があります。また、パラメータを使用する場合は、コマンドラインで記述する式から式を変更する必要があります。私の場合は

は、私は、フォームを使用:

var flag = "xyz"; 
ps.AddScript(@"param([string]$Flag) Get-Content -Path (Some-Cmdlet -Flag $Flag)") 
    .AddParameter("Flag", flag); 

は、より良い方法があるかもしれませんが、これは動作します。

関連する問題