假設我已經創建並通過如何通過注入一個數組變量變成一個PowerShell運行空間新變量
var rs = RunspaceFactory.CreateRunspace();
rs.Open();
讓我們打開運行空間進一步假設,我想一個變量添加到該的類型爲的是運行空間陣列通過使用新的變量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();
代碼工作,我沒有錯誤,但是變量「富」不作爲數組類型來創建。我已經在「@()」上嘗試了許多不同的變體,但是迄今爲止它們都沒有被淘汰。最終,我認爲這個問題歸結爲如何正確地將Value參數格式化爲New-Variable,以便'foo'將被解釋爲一個空的PowerShell數組類型。
謝謝,
馬特
請問downvoter護理解釋自己? – latkin
嗨latkin,謝謝你的回答。我現在能夠根據請求創建變量,但是我在尋找的是如何格式化從文件讀取的文本,以便在請求數組類型時正確解釋文件。我正在構建我的XML管道,並希望(如果可能的話)先知道文本格式來聲明各種類型。如果沒有其他辦法,那麼我會給你的答案信貸。我會投票決定你的答案(以及基思希爾的答案),但我沒有足夠的聲望去做。再次感謝。 – anonmous
如果你是從文本中完成的,你可以看看AddScript方法。例如,'var cmd = new PSCommand()。AddScript(「$ myVar = @()」);'會生成一個名爲'$ myVar'的新變量。 – latkin