如何从PS输出中过滤出特定值

时间:2018-06-22 07:08:45

标签: powershell powershell-v4.0 cmdlets powercli

我正在运行PS命令get-Keyproperty,该命令以下面的表格式返回结果”

Key                  Label                          Policy     Running  Required
---                  -----                          ------     -------  --------
abc                 UI                               on         True     False  
efg                 UI                               off        True     False 

我要检索Policy的值on

如何获取Policy abc的{​​{1}}值?

我正在运行Key,但无法正常工作。

1 个答案:

答案 0 :(得分:5)

要获取Policy的值,请尝试运行

Get-Keyproperty | Select-Object -ExpandProperty Policy

尽管以上命令是推荐的方法,但您也可以使用(Get-Keyproperty).Policy获得相同的结果。

如果要检查值是否与“ on”匹配,只需执行(Get-Keyproperty | Select-Object -ExpandProperty Policy) -eq "on"

如果您想要某个条目的Policy值,则可以:

  1. 在表中的位置上选择条目

    (Get-Keyproperty | Select-Object -ExpandProperty Policy)[0]

  2. 或者通过在其Key的值上找到它

    Get-Keyproperty | Where-Object {$_.Key -eq "abc" } | Select-Object -ExpandProperty Policy

    如评论中所述,同一命令的更短方式是

    (Get-Keyproperty | ? Key -eq "abc").Policy

    ?是别名(Get-Alias ?),{script block}仅对于更复杂的表达式是必需的,因此需要$_.Key$PSItem.Key (在PSv3中引入)表示法;两者都是管道中当前对象的同义词。参见Get-Help Where-Object