我必須通過C#來設置PowerShell的一個變量,必須通過C#再次使用該變量在PowerShell中,到目前爲止我的代碼:通過C#PowerShell的設置變量
var command = string.Format("$item = Invoke-RestMethod {0} ", "http://services.odata.org/OData/OData.svc/?`$format=json");
var command2 = string.Format("$item.value[0].name");
InvokeCommand.InvokeScript(command);
object namesOne= InvokeCommand.InvokeScript(command2);
在這種情況下,輸出應爲: 產品
但這C#不工作,我也累了:
Runspace runSpace = RunspaceFactory.CreateRunspace();
runSpace.Open();
Pipeline pipeline = runSpace.CreatePipeline();
Command invoke = new Command("Invoke-RestMethod");
invoke.Parameters.Add("Uri", "http://services.odata.org/OData/OData.svc/?`$format=json");
pipeline.Commands.Add(invoke);
runSpace.SessionStateProxy.SetVariable("item", pipeline.Invoke());
var a = runSpace.SessionStateProxy.PSVariable.GetValue("item");
Command variable = new Command("Write-Host $item");
pipeline.Commands.Add(variable);
var output = pipeline.Invoke();
但它的作品都不是。 有人知道我如何在Powershell中設置變量,並且可以通過C#在Powershell中使用它?
謝謝你的答案。但我不想在C#中獲得這個變量。我想在PowerShell中設置它,然後通過C#在PowerShell中使用它。 –
我已更新我的回答 – JMK
它的工作,謝謝你的更新回答:) –