我有一个示例代码片段,它建议使用
(Get-Process | Where-Object {$_.WorkingSet64 -gt 20mb}).Count返回所有使用> 20Mb的进程的计数。
它可以工作,但在输入时,无论是Intellisense还是"Tab“键都不会显示此属性,而是显示单个进程的属性--我认为这是误导。
我知道,指定一个item属性只会给我提供该属性的列表,但是有没有一种方法可以很容易地查看所有的有效属性,包括列表聚合等?
甚至为变量赋值
$processes = Get-Process | Where-Object {$_.WorkingSet64 -gt 20mb}直到赋值实际运行并赋值后,才会将"Count“显示为$processes的有效属性--在编写脚本时,它仍然显示单个项的属性。
对我来说,没有涵盖所有选项的Intellisense / Tab帮助有点违背了目的……(不必记住数百个对象/函数及其属性/参数)。
有没有办法改善这种情况?我错过了一些语法技巧吗?
发布于 2017-04-21 15:30:43
找出对象的所有属性的正确方法是将输出通过管道传输到Get-Member
Get-Process | Get-Member有时,只有在添加-force开关时才能看到隐藏的属性和方法:
Get-Process | Get-Member -Forcecount属性是一个自动属性,它总是可以在任何集合对象上使用,但没有显式地将其列为属性。自动特性的另一个示例是length。
发布于 2017-04-21 16:13:14
如果需要的话,使用@()强制使用数组类型是很方便的。
例如,$processes = @(Get-Process | Where-Object {$_.WorkingSet64 -gt 20mb}).将显示“计数”和其他数组属性。
除此之外,假设Intellisense有各种限制/缺点,我将不得不学习……叹一口气。
https://stackoverflow.com/questions/43536467
复制相似问题