Passing an foreachable array from C# to PowerShell -


how can pass array c# powershell can foreached?

right have script:

[cmdlet(verbscommon.get, "numbers")] public class getnumberscmdlet: cmdlet {     protected override void beginprocessing()     {         var list = new list<string>();         list.add("1");         list.add("2");         list.add("3");         list.add("4");         list.add("5");         writeobject(results.toarray());     } } 

and powershell script:

foreach ($number in get-numbers) {     write-output "output $number" } 

instead of:

output 1 output 2 output 3 output 4 output 5 

i get:

output 1 2 3 4 5 

powershell not automatically enumerate output of commands. means if command write collection pipeline, collection passed next command single object.

writeobject not enumerate objects unless explicitly asked.

so solve problem, can write objects go instead of collecting them:

[cmdlet(verbscommon.get, "numbers")] public class getnumberscmdlet: cmdlet {     protected override void beginprocessing()     {         writeobject("1");         writeobject("2");         writeobject("3");         writeobject("4");         writeobject("5");     } } 

or can ask writeobject enumerate collection:

[cmdlet(verbscommon.get, "numbers")] public class getnumberscmdlet: cmdlet {     protected override void beginprocessing()     {         var list = new list<string>();         list.add("1");         list.add("2");         list.add("3");         list.add("4");         list.add("5");         writeobject(results, true);     } } 

note in both cases not writing array anymore, individual items of it.


Comments

Popular posts from this blog

angular - Ionic slides - dynamically add slides before and after -

minify - Minimizing css files -

Add a dynamic header in angular 2 http provider -