Powershell 随机选择和计数
Powershell Random selection and count
我正在尝试编写一个 powershell 脚本,它从数组中随机选取 10 个项目,列出它们,然后写下哪个被选取的次数最多以及次数。
我有这个:
for ($num = 1 ; $num -le 10 ; $num++){
$namelist = @(
"Item 1",
"Item 2",
"Item 3",
"Item 4",
"Item 5"
)
Get-Random -InputObject $NameList
}
结果它显示了列表中的 10 个选项,但每次我都需要计算哪个选项被选中的次数最多。
有人可以帮忙吗?
您可以组合 Group-Object
with Sort-Object
:
$namelist = @(
"Item 1"
"Item 2"
"Item 3"
"Item 4"
"Item 5"
)
& {
for ($num = 1 ; $num -le 10 ; $num++) {
Get-Random -InputObject $NameList
}
} | Group-Object -NoElement | Sort-Object Count -Descending
这将 return 一个 对象数组 ,如果你想看看哪个被选中最多,你可以将它导入 Select-Object -First 1
。
如果您出于某种原因不想使用 Group-Object
,您也可以使用 hash table:
$map = @{}
for ($num = 1 ; $num -le 10 ; $num++) {
$pick = Get-Random -InputObject $NameList
$map[$pick] = 1 + $map[$pick]
}
$map.GetEnumerator() | Sort-Object { $_.Value } -Descending
我正在尝试编写一个 powershell 脚本,它从数组中随机选取 10 个项目,列出它们,然后写下哪个被选取的次数最多以及次数。
我有这个:
for ($num = 1 ; $num -le 10 ; $num++){
$namelist = @(
"Item 1",
"Item 2",
"Item 3",
"Item 4",
"Item 5"
)
Get-Random -InputObject $NameList
}
结果它显示了列表中的 10 个选项,但每次我都需要计算哪个选项被选中的次数最多。
有人可以帮忙吗?
您可以组合 Group-Object
with Sort-Object
:
$namelist = @(
"Item 1"
"Item 2"
"Item 3"
"Item 4"
"Item 5"
)
& {
for ($num = 1 ; $num -le 10 ; $num++) {
Get-Random -InputObject $NameList
}
} | Group-Object -NoElement | Sort-Object Count -Descending
这将 return 一个 对象数组 ,如果你想看看哪个被选中最多,你可以将它导入 Select-Object -First 1
。
如果您出于某种原因不想使用 Group-Object
,您也可以使用 hash table:
$map = @{}
for ($num = 1 ; $num -le 10 ; $num++) {
$pick = Get-Random -InputObject $NameList
$map[$pick] = 1 + $map[$pick]
}
$map.GetEnumerator() | Sort-Object { $_.Value } -Descending