首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell 5.0 / ISE

Powershell 5.0 / ISE
EN

Stack Overflow用户
提问于 2017-04-21 15:27:11
回答 2查看 59关注 0票数 2

我有一个示例代码片段,它建议使用

代码语言:javascript
复制
(Get-Process | Where-Object {$_.WorkingSet64 -gt 20mb}).Count

返回所有使用> 20Mb的进程的计数。

它可以工作,但在输入时,无论是Intellisense还是"Tab“键都不会显示此属性,而是显示单个进程的属性--我认为这是误导。

我知道,指定一个item属性只会给我提供该属性的列表,但是有没有一种方法可以很容易地查看所有的有效属性,包括列表聚合等?

甚至为变量赋值

代码语言:javascript
复制
$processes = Get-Process | Where-Object {$_.WorkingSet64 -gt 20mb}

直到赋值实际运行并赋值后,才会将"Count“显示为$processes的有效属性--在编写脚本时,它仍然显示单个项的属性。

对我来说,没有涵盖所有选项的Intellisense / Tab帮助有点违背了目的……(不必记住数百个对象/函数及其属性/参数)。

有没有办法改善这种情况?我错过了一些语法技巧吗?

EN

回答 2

Stack Overflow用户

发布于 2017-04-21 15:30:43

找出对象的所有属性的正确方法是将输出通过管道传输到Get-Member

代码语言:javascript
复制
Get-Process | Get-Member

有时,只有在添加-force开关时才能看到隐藏的属性和方法:

代码语言:javascript
复制
Get-Process | Get-Member -Force

count属性是一个自动属性,它总是可以在任何集合对象上使用,但没有显式地将其列为属性。自动特性的另一个示例是length

票数 2
EN

Stack Overflow用户

发布于 2017-04-21 16:13:14

如果需要的话,使用@()强制使用数组类型是很方便的。

例如,$processes = @(Get-Process | Where-Object {$_.WorkingSet64 -gt 20mb}).将显示“计数”和其他数组属性。

除此之外,假设Intellisense有各种限制/缺点,我将不得不学习……叹一口气。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43536467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档