【发布时间】:2019-03-18 10:49:40
【问题描述】:
我有以下代码:
function realtest
{
$files = Get-ChildItem -Path 'D:\data\' -Filter *.csv
$tester = [PSCustomObject]@{
foreach ($file in $files)
{
$tempName = $file.BaseName
$temp = Import-Csv $file
$tester | Add-Member -MemberType NoteProperty -Name $tempName -Value $temp.$tempName
}
$tester
$tester | Export-Csv "D:\result.csv" -NoTypeInformation
}
我正在尝试将一堆数据导出到 CSV,但是当它在 csv 上显示数据时,如下所示
"E0798T102","E0798T103"
"System.Object[]","System.Object[]"
但是当我在控制台上打印时它显示如下
E0798T102 E0798T103
--------- ---------
{0, 0, 0, 0...} {0, 0, 0, 0...}
最终,我希望 E0798T102 和 E0798T103 在 result.csv 中作为单独的列
请注意,我将循环遍历 50 个 csv,每个都应显示为自己的列
【问题讨论】:
-
根据您的代码,似乎每个 CSV 文件都将每个文件的基本名称作为第一个也是唯一一个只有一行数据的列标题。它是否正确?或者每个 CSV 文件是否仅包含一列以文件基名称作为标题和许多行,您最终需要一个包含 50 列不同行数的 CSV 文件?
-
是的,这是正确的,但每个 csv 文件中只有一列包含 500 行数据
标签: arrays powershell csv export-to-csv