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