PowerShell如何更节省内存地给结果分组


写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
本文链接: http://www.pstips.net/group-object-by-saving-memory.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

发表评论

电子邮件地址不会被公开。 必填项已用*标注