正如我在PowerShell用户指南中阅读的,PowerShell的核心概念之一是命令接受并返回对象而不是文本。例如,运行会get-alias
返回一些System.Management.Automation.AliasInfo
对象:
PS Z:\> get-alias
CommandType名称定义
----------- ---- ----------
别名%ForEach对象
别名?位置对象
别名ac Add-Content
别名asnp Add-PSSnapIn
别名猫Get-Content
别名cd Set-Location
别名chdir Set-Location
...
现在,我如何获得这些对象的数量?
发布于 2018-04-23 13:55:05
这会让你数一数:
get-alias | measure
你可以像使用对象一样处理结果:
$m = get-alias | measure
$m.Count
如果你想在别的变量中有别名,你可以使用Tee-Object:
$m = get-alias | tee -Variable aliases | measure
$m.Count
$aliases
发布于 2018-04-23 14:38:46
只要@ jumbo的答案是:-)你可以做得更简洁。这只是返回Count
先行子表达式返回的数组的属性:
@(Get-Alias).Count
有几点需要注意:
Get-Alias
,例如:
@(Get-Process | ? { $_.ProcessName -eq "svchost" }).Count
2012.01.30更新
以上是PowerShell V2的情况。PowerShell V3的一个新特性是,Count
即使对于单例,你也有一个属性,所以在这种情况下,符号变得不重要。
https://stackoverflow.com/questions/-100008228
复制相似问题