powershell select-object在一行上输出数组

时间:2013-07-24 16:02:42

标签: powershell

我有大约20个数组,每个数组包含100多个值。

我想将这些输出到带有列标题的csv文件中。

如果我在powershell命令提示符下键入任何这些数组,它们会显示在多行上,我可以使用$arrayname{14]从数组中选择不同的项目,所以我认为它们存储正确。

如果我在脚本中使用以下行:

"" | select-object @{Name="Column1"; Expression={"$Array1"}},@{Name="Column2"; Expression={"$Array2"}},@{Name="Column3"; Expression={"$Array3"}} | export-csv $exportLocation -notypeinformation

然后它创建带有标题的列,但每个数组变量显示在一行上。

如何让输出在各自的行中显示相应列中的数组?

1 个答案:

答案 0 :(得分:2)

您需要将4个数组转换为具有4个属性的对象数组。试试这个:

$Array1 = @(...)
$Array2 = @(...)
$Array3 = @(...)
$Array4 = @(...)

$len1 = [Math]::Max($Array1.Length, $Array2.Length)
$len2 = [Math]::Max($Array3.Length, $Array4.Length)
$maxlen = [Math]::Max($len1, $len2)

$csv = for ($i=0; $i -lt $maxlen; $i++) {
  New-Object -Type PSCustomObject -Property @{
    'Column1' = $Array1[$i];
    'Column2' = $Array2[$i];
    'Column3' = $Array3[$i];
    'Column4' = $Array4[$i];
  }
}

$csv | Export-Csv 'C:\path\to\output.csv'