首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell使用where-object

Powershell使用where-object
EN

Stack Overflow用户
提问于 2015-04-15 00:30:21
回答 2查看 1.7K关注 0票数 0

我正在使用Powershell,但在使用Where-Object cmdlet时遇到了问题。I当前为select *,然后希望仅在字段等于Alabama时输出。此字段可以在任何列下,而不只是一列。

这就是我所拥有的:

代码语言:javascript
复制
select * | where {$_.state_name -eq 'Alabama'} . 

这对state_name有效,但如果不单独处理,我无法获得所有列。我尝试过where{$_ -eq....},但这不起作用。

EN

回答 2

Stack Overflow用户

发布于 2015-04-15 00:54:08

有点像黑客,但是:

代码语言:javascript
复制
select * | where {($_ | ConvertTo-Csv -NoTypeInformation)[1] -like '*"Alabama"*'}
票数 3
EN

Stack Overflow用户

发布于 2015-04-15 01:04:55

你必须遍历所有对象的属性并检查它是否包含单词'Alabama‘。

示例:

代码语言:javascript
复制
# Import CSV file and feed it to the pipeline
Import-Csv -Path .\My.csv |
    # For each object
    ForEach-Object {
        # Psobject.Properties returns all object properties
        # (Psobject.Properties).Value returns only properties' values
        # -contains operator checks if array of values contains exact string 'Alabama'
        # You can also use -like operator with wildcards, i.e. -like '*labama'
        if(($_.PSObject.Properties).Value -contains 'Alabama')
        {
            # If any of the object properties contain word 'Alabama',
            # write it to the pipeline, else do nothing.
            $_
        }
    }
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29632665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档