组对象-将大组划分为块

组对象-将大组划分为块

我有一个 Powershell 脚本,它从数据库中检索一些数据,将Group-Object其收集到类似的组中,然后foreach对每个组采取行动。

问题是有些组有超过 100 个项目,但我的流程一次只能处理 100 个项目。它是专门为处理结果中的项目Group-Object而编写的,我不想重写那部分。

有没有一种优雅的方法可以将Group-Object这些组一次分成最多 100 个项目?还是我必须使用循环来收集它们for

答案1

以下是我想到的,部分归功于这个答案

# create hashtable with unique basedomain as key and zero as value
$NameHash = @{};
foreach ($i in $tbl.rows | Group-Object basedomain) {
  $NameHash[$i.Name]=0;
}
# regroup using the hashtable as a counter source
$result = $tbl.rows | Group-Object basedomain, { [math]::Floor($NameHash[$_.basedomain]++ / 100) }

相关内容