我正在使用的代码如下:
Import-Csv -Path "E:\CSV\GA.csv" | Group-Object Product | ForEach {
New-Object PSObject -Property @{
Product = $_.Name
Stockcode = $_.Group[0].Stockcode
QuantityCounted = ($_.Group | Measure-Object -Property QuantityCounted -Sum).Sum
}
} | Export-Csv "E:\CSV\test.csv" -NoTypeInformation
Run Code Online (Sandbox Code Playgroud)
标头应按以下顺序排列:
Import-Csv -Path "E:\CSV\GA.csv" | Group-Object Product | ForEach {
New-Object PSObject -Property @{
Product = $_.Name
Stockcode = $_.Group[0].Stockcode
QuantityCounted = ($_.Group | Measure-Object -Property QuantityCounted -Sum).Sum
}
} | Export-Csv "E:\CSV\test.csv" -NoTypeInformation
Run Code Online (Sandbox Code Playgroud)
如果有人能指出我正确的方向,那就太棒了,谢谢。
默认情况下,哈希表不是排序的,如果您需要对象的属性来保留其顺序,则需要使用有序字典。
该
[ordered]属性是在 PowerShell 3.0 中引入的。
New-Object PSObject -Property ([ordered]@{
Product = 1
Stockcode = 2
QuantityCounted = 3
})
Run Code Online (Sandbox Code Playgroud)
如果您运行的是最新版本的 PowerShell,则可以使用[pscustomobject]类型加速器创建具有有序属性的对象。这比New-Object.
[pscustomobject]PowerShell 4.0 中添加了类型加速器。
[pscustomobject]@{
Product = 1
Stockcode = 2
QuantityCounted = 3
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
78 次 |
| 最近记录: |