假设我已经通过
var rs = RunspaceFactory.CreateRunspace();
rs.Open();
让我们进一步假设我想通过使用 New-Variable cmdlet 将一个变量添加到该运行空间中,该变量键入为一个数组,如下所示:
// create a pipeline to add the variable into the runspace
var pipeline = PowerShell.Create();
// create a command object, add commands and parameters to it...
var cmd = new PSCommand();
cmd.AddCommand("New-Variable");
cmd.AddParameter("Name", "foo");
cmd.AddParameter("Value", "@()");
// associate the command with the pipeline and runspace, and then invoke
pipeline.Commands = cmd;
pipeline.Runspace = rs;
pipeline.Invoke();
代码有效,我没有收到任何错误,但变量 'foo' 没有创建为数组类型。我在“@()”上尝试了许多不同的变体,但到目前为止都没有成功。最终,我认为问题归结为如何将 Value 参数正确格式化为 New-Variable,以便将 'foo' 解释为空的 PowerShell 数组类型。
谢谢,
马特