1

我有一个 csv 文件,我需要将各个单元格组合在一起并将它们连接在一起,然后在 csv 布局中用分号分隔它们就是这样

CSV 布局

我设法将单元格“价格”和“功能编号”连接在一起,并用“;”分隔它们 但是对于只需要显示单元格返回的 1 名称或日期的 'datedespatched' 和 'username' 以及在压缩单元格中显示的 'System.Object[]','referencenumber' 单元格似乎可以很好地压缩。这是我当前的代码和我从中收到的输出

 Import-Csv 'C:\temp\test.csv' | Group-Object ReferenceNumber |ForEach-Object {
 
 [PsCustomObject]@{

        ReferenceNumber = $_.Name

        userName = $_.Group.userName

        DateDespatched = $_.Group.DateDespatched 

        functionnumber = $_.Group.functionnumber -join '; '

        Price = $_.Group.Price -join '; '
        
        }
 } | Export-Csv 'C:\temp\test-export.csv' -NoTypeInformation 
 

代码输出

先感谢您

4

1 回答 1

1

当您创建自定义 PS 对象时,您将加入 functionnumber 和 Price 但不是 userName 和 DateDespatched 的输出。这样做的效果是 $_.Group.userName 变成了一个数组,并且您将数组作为要输出的对象发送。如果你添加

-join ';' 

对用户名和 DateDespatched 都有效。我有一个类似的问题,我在这篇文章中得到了一些很好的帮助。

如果您只想每行输出一个名称,则可以将数组通过管道传输到

Select-Object -Unique 

只获得唯一的条目。

于 2020-11-30T00:51:13.627 回答