使用PowerShell在表格中格式化三个数据列表

时间:2011-03-05 19:58:50

标签: windows powershell formatting

我有三个我想要打印的数字列表。这三个列表是三个数字集合。它们具有相同数量的元素,因此从所有三个元素的第一个位置开始到最后一个元素,我必须打印这样的东西

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

...

如何使用Format-Table执行此操作? 或者更好的是,我如何使用Format-Table cmd-let来解决这个问题?

三江源

3 个答案:

答案 0 :(得分:3)

这是一个解决方案:

$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;

结果:

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

<小时/> 说明

@ {n =“ blah ”的每个实例; e = { blah }}是哈希表。键是“名称”和“表达式”的缩写。参见示例4 on this page

“$ _”表示正在输入的值。在这种情况下,每个索引值都通过管道输入到select语句。

答案 1 :(得分:2)

 $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 

答案 2 :(得分:1)

我是一个名副其实的新手,我确信有更好的方法,但我希望这个例子可以帮到你

$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