【问题标题】:PowerShell - Import-Csv - referencing a column by its positionPowerShell - Import-Csv - 按位置引用列
【发布时间】:2016-02-13 04:46:32
【问题描述】:

在 PowerShell 中使用 cmdlet Import-Csv 处理 csv 文件时,是否有一种简单/优雅的方法可以通过列的位置而不是标题名称来查询列?

此数据的示例:

row1, abc
row2, def
row3, xyz

如果文件将“header_column2”作为第二列的标题,则以下命令可以正常工作:

import-csv data.csv | where {$_.header_column2 -eq "xyz"}

我正在寻找这样的东西(这显然行不通!):

import-csv data.csv | where {$_.[2] -eq "xyz"}

我知道如果我在文件中没有标题,我可以使用 -Header 参数来指定这些,但我正在寻找一些快速方便的东西来为标题不相关的各种文件即时编写.

非常感谢!

【问题讨论】:

  • @($_.PSObject.Properties)[2].Value

标签: csv powershell


【解决方案1】:

由于 @PetSerAl 不理解 StackOverflow 上 cmets 和答案之间的区别,我将提供类似的答案。

您可以使用.PSObject.Properties 列出对象中的属性。这会返回一个不知道索引的IEnumerable,但如果将其转换为数组,它就会。

@($_.PSObject.Properties)[2].Value

【讨论】:

    猜你喜欢
    • 2019-06-14
    • 2017-01-20
    • 2015-10-12
    • 2014-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-23
    相关资源
    最近更新 更多