2016-02-13 37 views
1

在PowerShell中使用cmdlet Import-Csv處理csv文件時,有沒有簡單/優雅的方式通過其位置而不是頭名稱來查詢列?PowerShell - Import-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"} 

我知道,如果我沒有f中的標題ile我可以使用-Header參數來指定這些參數,但是我正在尋找一些快速且方便的動態寫入各種文件的標頭不相關的文件。

非常感謝!

+1

'@($ _。PSObject.Properties)[2] .Value' – PetSerAl

回答

0

由於@PetSerAl不理解StackOverflow中的註釋和答案之間的區別,因此我會提供一個類似的答案。

您可以使用.PSObject.Properties列出對象中的屬性。這將返回一個不知道索引的IEnumerable,但是如果將其轉換爲數組,它將會。

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

充當魅力,非常感謝! – bdista