Mise en forme dans un tableau de trois listes de données à l’aide de PowerShell

J’ai trois listes de numéros que j’aimerais imprimer. Ces trois listes sont trois collections de numéros. Ils ont le même nombre d’éléments donc à partir de la première position des trois, jusqu’au dernier, je dois imprimer quelque chose comme ça

Element in list1 pos1 | Element in list2 pos1 | Element in list3 pos1 Element in list1 pos2 | Element in list2 pos2 | Element in list3 pos2 Element in list1 pos3 | Element in list2 pso3 | Element in list3 pos3 Element in list1 pos4 | Element in list2 pos4 | Element in list3 pos4 ... 

Comment faire cela en utilisant Format-Table? Ou mieux, comment puis-je utiliser le cmd-let Format-Table pour résoudre ce problème?

Je vous remercie

Voici une solution:

 $c0=357,380,45 $c1=12,20,410 $c2=223,270,30 0..($c0.Length -1) | select-object ( @{n="one"; e={$c0[$_]}}, @{n="two"; e={$c1[$_]}}, @{n="three"; e={$c2[$_]}} ) | format-table -auto; 

Résulte en:

 one two three --- --- ----- 357 12 223 380 20 270 45 410 30 

Explication

Chaque instance de @ {n = ” blah “; e = { blah }} est une table de hachage. Les touches sont courtes pour “Nom” et “Expression”. Voir exemple 4 sur cette page .

“$ _” représente la valeur introduite. Dans ce cas, chaque valeur d’index est redirigée vers l’instruction select.

  $c0 = 357,380,45 $c1 = 12,20,410 $c2 = 223,270,30 $x = foreach ($i in 0..(($c0.count)-1)){ ($c0[$i],$c1[$i],$c2[$i]) -join "," | convertfrom-csv -header "c0","c1","c2" } $x | ft -auto c0 c1 c2 -- -- -- 357 12 223 380 20 270 45 410 30 

Je suis un novice de PowerShell et je suis sûr qu’il y a de meilleurs moyens mais j’espère que cet exemple peut vous aider

 $e = @() $a = 1,2,3,4 $b = 5,6,7,8 $c = 'nine','ten','eleven','twelve' for ($i=0;$i -lt $a.count;$i++) { $d = New-Object PSObject -Property @{ one = $a[$i] two = $b[$i] three = $c[$i] } $e+=$d} $e | select one,two,three | ft -auto