要在PowerShell中对输出进行排序,您需要使用Sort-Object Pipeline cmdlet。在下面的示例中,我们将从Get-Process命令中检索输出,然后根据内存和CPU使用率对它们进行排序。
Get-Process | Sort-Object WorkingSet | Select -First 10
输出结果
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName ------- ------ ----- ----- ------ -- -- ----------- 0 0 60 8 0 0 Idle 144 8 1840 232 0.14 8396 1 SkypeBackgroundHost 514 26 19280 300 0.73 16872 1 Calculator 1140 50 63584 464 15.86 10688 1 ksdeui 53 3 1212 816 0.30 580 0 smss 217 17 3432 1848 37.03 13272 1 ptim 486 26 7404 2228 168.86 13732 1 ptsrv 32 6 1636 2440 0.16 1092 0 fontdrvhost 86 5 968 3620 0.00 1060 0 svchost 85 6 1208 4104 0.59 4116 0 ibtsiva
在上面的示例中,输出以默认顺序升序存储,然后我们检索了前10个进程。
如果要以降序输出,则需要添加参数-Descending。
Get-Process | Sort-Object WorkingSet -Descending | Select -First 10
输出结果
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName ------- ------ ----- ----- ------ -- -- ----------- 0 0 3660 719552 544.86 2580 0 Memory Compression 968 125 1132200 487196 6,867.28 4228 1 chrome 1867 150 294740 332516 1,136.42 19036 1 WINWORD 1137 46 446876 305092 2,470.48 14560 1 chrome 583 38 309476 250312 755.97 15652 1 chrome 3597 107 275080 226752 11,615.69 12712 1 chrome 464 59 179012 172652 1,938.55 18732 1 chrome 350 31 191756 157716 339.11 5952 1 chrome 607 61 129380 156224 106.52 7712 1 Code 536 31 186496 146176 35.81 10352 1 Code
同样,您也可以按升/降顺序对CPU和其他属性进行排序,如下例所示。
Get-Process | Sort-Object CPU | Select -First 10
Get-Process | Sort-Object CPU -Descending | Select -First 10