Powershell排序CSV文件

时间:2014-05-26 05:45:25

标签: powershell

我有以下代码:

$script:DatabaseFile = "C:\NewFolder\test.csv"

[string[]]$database = Get-Content -Path $script:DatabaseFile
[Collections.Generic.List[String]]$script:Database = $database

$script:Database | Out-File $script:DatabaseFile -Encoding ascii
$databaseAsCsvObject = Import-Csv $script:DatabaseFile
$databaseAsCsvObject | sort "Release Group","Email Address" | Export-Csv $script:DatabaseFile

$script:DatabaseFile包含以下内容:

Release Group,Email Address,Template ID,Time
CDP.HLO.1,test@test.com,Template1,02:00
EDP.HLO.1,test1@test1.com,Template2,03:00

这会根据前两列成功对csv文件进行排序。

如何编写等效代码而不必保存文件,然后将其导入为csv? 我可以将$script:Database作为" CSV"对象,然后对它进行排序,然后只将其写入文件一次?

1 个答案:

答案 0 :(得分:2)

$script:Database = @(
[pscustomobject]@{"Release group"="EDP.HLO.1";"Email Address"="test1@test1.com";"Template ID"="Template2";"time"="03:00"},
[pscustomobject]@{"release group"="CDP.HLO.1";"Email Address"="test@test.com";"Template ID"="Template1";"time"="02:00"})

$sorted = $script:Database | Sort-Object "Release Group", "Email Address"

$script:DatabaseFile = "C:\data\test.csv"
$sorted | Export-csv -NoTypeInformation -Path $script:DatabaseFile

好的,所以我完全重写了我的第一个答案。首先使用所需标题创建自定义对象。根据需要创建任意数量的条目。对对象排序,然后导出到csv:)