我有一个 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) }