在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
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
文章最后的两个链接好像已经失效了。