Phi*_*ani 5 c# variables powershell
I have to set via C# a variable in PowerShell and have to use that variable via C# in Powershell again, my code so far:
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);
Run Code Online (Sandbox Code Playgroud)
In this case the output should be: Products
But this C# doesn't work, i tired also:
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();
Run Code Online (Sandbox Code Playgroud)
But it works neither. Has someone an idea how I could set a variable in Powershell and can work with it in Powershell always via C#?
关于设置变量,您的第二个代码块按预期工作,以下是将powershell 中的$item设置为FooBar的快速测试,将其拉回并确认值正确:
[Test]
public void PowershellVariableSetTest()
{
var runSpace = RunspaceFactory.CreateRunspace();
runSpace.Open();
runSpace.SessionStateProxy.SetVariable("item", "FooBar");
var a = runSpace.SessionStateProxy.PSVariable.GetValue("item");
Assert.IsTrue(a.ToString() == "FooBar");
}
Run Code Online (Sandbox Code Playgroud)
要从 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");
var powershell = PowerShell.Create();
powershell.Commands.AddScript(command);
powershell.Commands.AddScript(command2);
var name = powershell.Invoke()[0];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6963 次 |
| 最近记录: |