0

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

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

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

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

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

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

如何获得输出以在各自的行中显示各自列中的数组?

4

1 回答 1

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'
于 2013-07-24T17:26:35.470 回答