在@ {名称别名之后,我不能在pipe道中使用WHERE吗?
我必须在我的输出中使用自定义列标题,所以我使用@ {名称语法。 后来在pipe道中,sorting工作使用我给它的别名,但WHERE子句不。 我试过回到原来的$ _。 variables名称,但他们似乎也没有工作。 当我拿出WHERE子句时,我得到了我的输出与别名标题。
没有@ {名称别名和WHERE的作品
PS C:\> Get-WmiObject Win32_operatingsystem | select version,BuildNUmber | where { $_.buildnumber -eq 3790} | sort version version BuildNUmber ------- ----------- 5.2.3790 3790
具有别名和WHERE的示例不起作用
Get-WmiObject Win32_operatingsystem | select @{Name="Ver";Expression={$_.version}}, @{Name="Build";Expression={$_.BuildNUmber}} | where { "build" -eq 3790} | sort "ver"
具有别名和NO WHERE的示例获取输出。 SORT使用别名,也可以工作。
PS C:\> Get-WmiObject Win32_operatingsystem | select @{Name="Ver";Expression={$_.version}}, @{Name="Build";Expression={$_.BuildNUmber}} | sort "ver" Ver Build --- ----- 5.2.3790 3790
所以理想情况下,我想能够使用@ {名称与WHERE子句..
你有一个语法缺陷:
where { "build" -eq 3790}
以上声明在function上与以下内容相同:
where { $false }
不pipe你input什么,它都不会返回任何东西。
将其更改为
where { $_.Build -eq 3790 }