Powershell - Group-Object Expand and Group again
Powershell - Group-Object Expand and Group again
我有一个 .csv 文件,我将其分组为两个属性 'DN'、'SKU',然后对另一个 属性 'DeliQty' 执行求和
这工作正常,总和反映回组。
但是,然后我需要在 'DN' 上重新分组并写出到单独的文件中。
我试过 Select-Object -Expand Group 但这会恢复到原始内容而没有求和行。
有没有办法取消分组保留求和行然后再次分组?
$CSVFiles = Get-ChildItem -Path C:\Scripts\INVENTORY\ASN\IMPORT\ -Filter *.csv
foreach ($csv in $CSVFiles) {
$group = Import-Csv $csv.FullName | Group-Object DN, SKU
$group | Where Count -gt 1 | ForEach-Object {
$_.Group[0].'DeliQty' = ($_.Group | Measure-Object DeliQty -Sum).Sum
}
}
您可以执行以下操作:
$CSVFiles = Get-ChildItem -Path C:\Scripts\INVENTORY\ASN\IMPORT\ -Filter *.csv
foreach ($csv in $CSVFiles) {
$group = Import-Csv $csv.FullName | Group-Object DN, SKU | Foreach-Object {
if ($_.Count -gt 1) {
$_.Group[0].DeliQty = ($_.Group | Measure-Object DeliQty -Sum).Sum
}
$_.Group[0]
}
# outputs summed and single group objects
$group
}
我有一个 .csv 文件,我将其分组为两个属性 'DN'、'SKU',然后对另一个 属性 'DeliQty' 执行求和 这工作正常,总和反映回组。 但是,然后我需要在 'DN' 上重新分组并写出到单独的文件中。 我试过 Select-Object -Expand Group 但这会恢复到原始内容而没有求和行。
有没有办法取消分组保留求和行然后再次分组?
$CSVFiles = Get-ChildItem -Path C:\Scripts\INVENTORY\ASN\IMPORT\ -Filter *.csv
foreach ($csv in $CSVFiles) {
$group = Import-Csv $csv.FullName | Group-Object DN, SKU
$group | Where Count -gt 1 | ForEach-Object {
$_.Group[0].'DeliQty' = ($_.Group | Measure-Object DeliQty -Sum).Sum
}
}
您可以执行以下操作:
$CSVFiles = Get-ChildItem -Path C:\Scripts\INVENTORY\ASN\IMPORT\ -Filter *.csv
foreach ($csv in $CSVFiles) {
$group = Import-Csv $csv.FullName | Group-Object DN, SKU | Foreach-Object {
if ($_.Count -gt 1) {
$_.Group[0].DeliQty = ($_.Group | Measure-Object DeliQty -Sum).Sum
}
$_.Group[0]
}
# outputs summed and single group objects
$group
}