Я пытаюсь найти процесс с самым высоким процессором в данной группе, в моем случае группа просто равна processname
. Предположим, что у меня эти процессы:Возврат элемента в группе с наибольшим значением определенного свойства
Id ProcessName CPU Memory Threads
-- ----------- --- ------ -------
7532 MicrosoftEdgeCP 40,3125 355,51953125 27
1680 powershell_ise 47,875 214,1015625 23
7568 lync 7,9375 213,859375 52
9664 chrome 19,71875 167,9609375 12
4216 MicrosoftEdgeCP 92,578125 152,2890625 26
5392 explorer 31,09375 116,390625 66
2676 chrome 23,390625 110,96875 41
9812 chrome 14,625 100,859375 8
2872 MsMpEng 100,5234375 36
5752 SearchUI 2,609375 90,0625 23
Я пытаюсь найти Chrome (9664). В настоящее время у меня есть этот код:
$list = @()
$grouped = Get-Process | Where ProcessName -Like "c*" |
Sort CPU -Descending |
Group ProcessName |
Select $_ -First 10
$grouped
foreach($item in $grouped) {
$list += @($item.Group |
Sort CPU -Descending |
Select Id, ProcessName, CPU, Memory, Threads -First 1)
}
$list | ft -Wrap
Можно ли сделать то же самое без сохранения первого в каждой группе в $list
массиве?
'Get-Process | Где ProcessName -Like "c *" | Сортировка CPU -Descending | Группа ProcessName | Foreach-object {$ _. Group | Выбрать -Первый 1} '? Он уже отсортирован. Не нужно повторять это. – Matt
В вашем примере вы не пытаетесь сопоставить PID 2676 для хром? – Matt
Я не на 100% на изменение названия. Необходимо удалить тег, по крайней мере, из заголовка. Повторите попытку, если хотите, но не откат. – Matt