PowerShell 技能连载 - 为对象高效添加标记
有时候您会见到用 Select-Object
向已有对象增加信息的脚本,类似以下代码:
1 | Get-Process | |
这段代码可以工作,但是 Select-Object
创建了一个全新的对象拷贝,所以这种方法速度比较慢并且改变了对象的类型。因为这个原因,您会注意到 PowerrShell 不再像正常的那样以表格的方式输出。
Add-Member
是首选的增加额外信息到已有对象的 cmdlet,因为它不会拷贝对象并且不会改变对象类型。请比较输出结果:
1 | Get-Process | |
对象类型没有改变,并且 PowerShell 继续使用进程查看缺省的输出布局。这是因为新的 “Sender” 属性初始是不可见的。不过它事实上存在:
1 | Get-Process | |
PowerShell 技能连载 - 为对象高效添加标记
http://blog.vichamp.com/2017/12/01/tagging-objects-efficiently/