展开PSObject的内容

时间:2015-07-09 05:22:50

标签: powershell

我有两个变量:

$variables2007 = "item1;Item2;Item3;item4" -split ';'
$data2007 = "Data1;data2;data3;data4" -split ';'

我正在尝试将这些内容放入表中,以便$variables2007的内容与$data2007的值并排匹配。我已经尝试过这样的自定义PSObject:

$Props2007 = [ordered]@{
  "2007Vars" = $variables2007 
  "Data2007" = $variables2007Data
}

New-Object -TypeName PSObject -Property $Props2007

但是,这仍然只是在桌子彼此卡住的情况下写出来,即:

{item1 item2 item3 item4} 

并不是每个内容的好清单,如:

item1    value1
item2    value2
item3    value3

3 个答案:

答案 0 :(得分:5)

试试这个:

$h = [ordered]@{}
for ($i=0; $i -le $variables2007.Length; $i++) {
   $ht["$($variables2007[$i])"] = $data2007[$i]
}
[psobject]$ht

Name                           Value
----                           -----
item1                          Data1
Item2                          data2
Item3                          data3
item4                          data4

答案 1 :(得分:2)

将数据放入哈希表中,然后枚举内容

$Props2007 = [ordered]@{

  item1 =  'Data1'
  item2 =  'Data2' 
  item3 =  'Data3' 

}

$Props2007

答案 2 :(得分:0)

PSv3及以上

(0..$variables2007.Length) | %{$Props2007+=[pscustomobject]@{Variable=$variables2007[$_];Data=$data2007[$_];SomeThirdData=$ThirdData[$_]}}

关于这种方法的好处是它可以轻松扩展以包含更多列/成员

// http://stackoverflow.com/questions/3646036/javascript-preloading-images
var preloaded_images = [];
function preload() {
    for (i = 0; i < arguments.length; i++) {
        preloaded_images[i] = new Image();
        preloaded_images[i].src = preload.arguments[i];
    }
}