所以我在理解PowerShell中的一些cmdlet方面還是有點新的。我試圖從多個csv文件中獲取列的值,並將這些值放在1個文件的列中。例如從fileA.csv的column1導入值並將值導出到fileB.csv的column1
我有一個包含以下數據的文件。我們叫它FileA.csv:
SomeLineOfNotes
SomeLineOfNotes2
SomeLineOfNotes3
SomeLineOfNotes4
SomeLineOfNotes5
SomeLineOfNotes6
"FruitType","VegetableType","MeatType"
現在我想導入FileB.csv水果的值: 注:這將是很難使用的分隔符「」因爲有些值必須一個 「,」
"FruitFav","DrinkFav", "DairyFav"
"Banana","Soda","IceCream"
"Mango","EnergyDrinks,Monster","Yogurt"
"Peach","Slurpy","Cheese"
現在FileA.csv應具有以下內容:
SomeLineOfNotes
SomeLineOfNotes2
SomeLineOfNotes3
SomeLineOfNotes4
SomeLineOfNotes5
SomeLineOfNotes6
"FruitType","VegetableType","MeatType"
"Banana","",""
"Mango","",""
"Peach","",""
任何想法如何與權力這樣做貝殼?
我猜一開始將是把兩個文件哈希表
$FileAcontents = Import-Csv $FileA -Header "FruitType","VegetableType","MeatType"
$FileBcontents = Import-Csv $FileB -Header "FruitFav","DrinkFav", "DairyFav"
我從這裏輸了...
UPDATE
我會當我有機會時測試答案。我最終用get-content去實現基於「,」分隔的值。我的一些未來物品不適用於這些物品的價值中有一個「,」。所以我想我需要暫時刪除csv文件中的頂部不行,並在頂部留下列名,這樣我就可以使用import-csv cmdlet。此刻,我的老闆給了我兩天時間寫一個文件,比較每個哈希表中具有不同值和不同列名的20多個行和10列20個不同哈希表的文件,他希望根據比較結果附加列。所以我有點急於完成這件事(2天內?這是正常的嗎?)。
csv文件的格式應該是一致的,這意味着您不能在文件的開始部分有一些文本行,然後是標題。它可以沒有標題,但文件應該是一致的。分隔符可以是分號而不是逗號。 – Kiran
對此有幫助嗎? 'Import-Csv -Path $ FileB -Header'FruitType','VegetableType','MeatType'| Export-Csv $ FileA -Append' – Kiran
呃不是真的,用那個代碼它會在meattype列中添加icecream值。無論如何,你說我應該在腳本末尾添加列標題上方的行? PowerShell沒有辦法檢測任何行上的列並填寫這些列的值?我一直在考慮只使用python並且一起跳過powershells csv cmdlet。我已經在這裏工作了10個小時,而且我的老闆明天要完成這件事。 –