PowerShell 3.0 中的"Count“ 属性


在PowerShell 2.0 中 经常可能会做一件尬尴的事,要判断一条命令的返回的结果是不是一个数组,如果是数组再去访问它的Count属性,否则Count属性为空。但是在PowerShell 3.0 中 即使没有元素,Count 也不为空,只是返回0.

PS C:\> ls *NanFangZhouMo*
PS C:\> (ls *NanFangZhouMo*).count
0
PS C:\> (ls *).count
17
PS C:\> (ls NanFangZhouMo).count
ls : Cannot find path 'C:\NanFangZhouMo' because it does not exist.
At line:1 char:2
+ (ls NanFangZhouMo).count
+  ~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (C:\NanFangZhouMo:String) [Get-ChildItem], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand

0
PS C:\> (ls NanFangZhouMo -ErrorAction Silently ).count
0

能不能有一种语法兼容PowerShell 3.0 和 PowerShell 2.0 ,那就是使用@符号

PS C:\> @(ls NanFangZhouMo -ErrorAction Silently).Count
0

还有一种情况可能是,有的人不习惯PowerShell 3.0中这个所谓方便的Count属性,他可以通过Set-StrictMode命令启用严格模式。

引用链接: “Count” Available in PowerShell 3.0

×用微信扫描并分享
本文链接: https://www.pstips.net/interesting-count-property-in-powershell-v3.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

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

发表评论

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