我有大约20个数组,每个数组包含100多个值。
我想将这些输出到带有列标题的csv文件中。
如果我在powershell命令提示符下键入任何这些数组,它们会显示在多行上,我可以使用$arrayname{14]
从数组中选择不同的项目,所以我认为它们存储正确。
如果我在脚本中使用以下行:
"" | select-object @{Name="Column1"; Expression={"$Array1"}},@{Name="Column2"; Expression={"$Array2"}},@{Name="Column3"; Expression={"$Array3"}} | export-csv $exportLocation -notypeinformation
然后它创建带有标题的列,但每个数组变量显示在一行上。
如何让输出在各自的行中显示相应列中的数组?
答案 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'