PowerShell - Import-Csv - 按位置引用列

时间:2016-02-13 04:46:33

标签: csv powershell

在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参数来指定这些标题,但是我正在寻找快速方便的东西来动态编写各种文件,其中标题是不相关。

非常感谢!

1 个答案:

答案 0 :(得分:2)

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

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

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