【问题标题】:Powershell Get Hashtable ValuesPowershell 获取哈希表值
【发布时间】:2020-08-11 17:23:45
【问题描述】:

我有这个值的哈希表:

Name                           Value                                                                                                            
----                           -----                                                                                                            
Bayas_palm_stem_A0311.jpg      1                                                                                                                
Bayas_palm_stem_A0312.jpg      2                                                                                                                
Bukit_Bangkong_area.tiff       1                                                                                                                
BY_and_siblings_A0259.jpg      5                                                                                                                
Cassava_camp_A0275.jpg         1                                                                                                                
Children_A0115.jpg             6                                                                                                                
cip_barau_kubak.jpg            1

我怎样才能只获得值大于 1 的名称和值?

我正在尝试使用此代码,但我做错了什么!!!

$RT | Group-Object Name , Value | Where-Object {$RT.Values -gt 1} 

非常感谢您的帮助。

【问题讨论】:

    标签: powershell


    【解决方案1】:

    使用$hashtable.GetEnumerator()枚举散列表中的individual名-值对:

    $RT.GetEnumerator() |Where-Object {$_.Value -gt 1}
    

    请注意,如果将结果对分配给变量,则它不再是哈希表 - 它只是单个名称-值对的数组。

    要创建仅包含过滤的名称-值对的新哈希表,请执行以下操作:

    $RTFiltered = @{}
    $RT.GetEnumerator() |Where-Object {$_.Value -gt 1} |ForEach-Object {$RTFiltered.Add($_.Name, $_.Value)}
    

    【讨论】:

      【解决方案2】:

      像这样:

      $RT.getenumerator() | Where-Object {$_.Value -gt 1}
      
      

      【讨论】:

        【解决方案3】:

        假设你有一个像这样定义的 Hashtable。

        $rt = @{
        "Bayas_palm_stem_A0311.jpg " =     1                                                                                                             
        "Bayas_palm_stem_A0312.jpg " =     2                                                                                                               
        "Bukit_Bangkong_area.tiff  " =     1                                                                                                              
        "BY_and_siblings_A0259.jpg " =     5                                                                                                             
        "Cassava_camp_A0275.jpg    " =     1                                                                                                            
        "Children_A0115.jpg        " =     6
        "cip_barau_kubak.jpg       " =     1
        }
        

        您可以调用GetEnumerator(),它允许您遍历哈希表。

        一旦您获得了成员的枚举,那么您的正常 PowerShell 值比较就会起作用。

        你可以像这样得到大于 1 的值:

        $rt.GetEnumerator() | ? Value -gt 1
        
        Name                           Value                                                                                            
        ----                           -----                                                                                            
        BY_and_siblings_A0259.jpg      5                                                                                                
        Children_A0115.jpg             6                                                                                                
        Bayas_palm_stem_A0312.jpg      2   
        

        【讨论】:

          猜你喜欢
          • 2015-05-26
          • 1970-01-01
          • 2015-07-05
          • 1970-01-01
          • 2021-09-22
          • 2017-02-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多