0
這似乎很基本,但我找不到或找不到任何地方。Powershell搜索CSV對Hashtable
我有2個CVS文件,我想導入一個並將ID列更改爲另一個.csv中包含的相關字符串,然後將結果導出到文件。我一直在嘗試哈希表,但似乎無法弄清楚。
電流:
Main.csv Reference.csv
Type_ID Category_ID Location_ID Type_ID Type
1 11 111 1 Tablet
2 22 222 2 Laptop
3 33 333 3 Workstation
想它改爲:
Type Category_ID Location_ID
Tablet 11 111
Laptop 22 222
Workstation 33 333
這裏是我的工作代碼:
#import file as hash table
$t = Import-Csv -Path .\Reference.csv -Header "column1","column2"
$HashTable = @{}
foreach($r in $t)
{
Write-Host $r.column1 $r.column2
$HashTable[$r.column1] = $r.column2
}
$HashTable
#compare ID and assign string
ForEach($_.Type_ID in (Import-CSV .\Main.csv)){
If($HashTable.ContainsKey($_.column1)){
$_.column1=$HashTable[$_.column2]
}
$_
} | Export-Csv .\it_works.csv
任何建議是極大的讚賞
的Merci先生@JPBlanc, 它的工作原理就像我問,我可能會問我怎麼會類型之前插入一列?我的文件有很多列(爲簡單起見,我選擇了3列),使用逗號在右側添加更多內容時沒有問題,但在Type之前插入列時似乎出現錯誤。例如: 'Import-Csv C:\ dumy \ a.csv | Category_ID,選擇@ {name =「Type」;表達式= {$ t [$ _。type_id]}},Location_ID | export-csv'c:\ dumy \ c.csv'' –
我正在使用@移動選擇。已解決 http://technet.microsoft.com/en-us/library/ff730948.aspx –