Powershell 使用新行对csv进行排序

Powershell 使用新行对csv进行排序,powershell,csv,sorting,format,Powershell,Csv,Sorting,Format,我得到了用户和工作站的报告。现在,如果一个用户有几个工作站,我希望为他的每个工作站都有一条单独的线路。始终使用名称、Surename和工作站。最后,应将其导出为report-new.csv CSV: "Name","Surname","Workstation" "John","Doe","PC001,PC005,PC100" "Fonzarelli","Arthur","PC234,PC324" "Tribbiani","Joey","PC999" $report = Import-Csv "

我得到了用户和工作站的报告。现在,如果一个用户有几个工作站,我希望为他的每个工作站都有一条单独的线路。始终使用名称、Surename和工作站。最后,应将其导出为report-new.csv

CSV:

"Name","Surname","Workstation"
"John","Doe","PC001,PC005,PC100"
"Fonzarelli","Arthur","PC234,PC324"
"Tribbiani","Joey","PC999"
$report = Import-Csv "C:\Scripts\report.csv"

Foreach ($wst in $report) {

    If ($wst.Workstation -match ",") {

        New Line foreach Workstation? Export-Csv "C:\Scripts\report-new.csv" -NoTypeInformation
    }
}
脚本:

"Name","Surname","Workstation"
"John","Doe","PC001,PC005,PC100"
"Fonzarelli","Arthur","PC234,PC324"
"Tribbiani","Joey","PC999"
$report = Import-Csv "C:\Scripts\report.csv"

Foreach ($wst in $report) {

    If ($wst.Workstation -match ",") {

        New Line foreach Workstation? Export-Csv "C:\Scripts\report-new.csv" -NoTypeInformation
    }
}
您可以用逗号拆分
工作站
属性,并使用换行符将其连接在一起。例如:

$report = Import-Csv "C:\Scripts\report.csv"

Foreach ($wst in $report) {

    ($wst.Workstation -split ',') -join [System.Environment]::NewLine
}
结果:

Name       Surname Workstation
----       ------- -----------
John       Doe     PC001
John       Doe     PC005
John       Doe     PC100
Fonzarelli Arthur  PC234
Fonzarelli Arthur  PC324
Tribbiani  Joey    PC999

谢谢你的提示,马丁。我只是编辑我的问题。它应该始终具有相同的方案:名称、Surename、工作站。如果要将其导出回CSV,则不能将每个工作站放到新行,因为新行表示CSV中的新记录。