写PowerShell脚本的朋友可能汇总结果时经常会用到Group-Object命令。Group-Object 有一个非常隐蔽的参数-NoElement,适用于只统计分组结果的个数,不返回每个组中的元素,这样可以最大限度的避免浪费内存。
下面的输出演示两种结果的输出差别:
PS> dir $env:windir | Group-Object -Property Extension
Count Name Group
----- ---- -----
58 {addins, AppCompat, AppPatch, assembly...}
1 .NET {Microsoft.NET}
12 .exe {bfsvc.exe, explorer.exe, fveupdate.exe, HelpPane.exe...}
2 .dat {bootstat.dat, nsreg.dat}
11 .log {DAI.log, DAI_lenovo.log, DtcInstall.log, IE11_main.log...}
1 .bin {mib.bin}
4 .ini {msdfmap.ini, ODBC.INI, system.ini, win.ini}
1 .txt {ntbtlog.txt}
3 .xml {Professional.xml, Starter.xml, win7.xml}
1 .scr {Scr1103.scr}
2 .dll {twain.dll, twain_32.dll}
1 .prx {WMSysPr9.prx}
PS> dir $env:windir | Group-Object -Property Extension -NoElement
Count Name
----- ----
58
1 .NET
12 .exe
2 .dat
11 .log
1 .bin
4 .ini
1 .txt
3 .xml
1 .scr
2 .dll
1 .prx
本文链接: https://www.pstips.net/group-object-by-saving-memory.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
