2014-05-08 52 views
1

我有一個CSV文件,我正在使用PowerShell進行重構,並且我希望將多個使用通配符匹配名稱的字段的值組合在一起。我已經選擇我的CSV領域我導入,所以想用一個類似於以下內容:PowerShell - 動態組合CSV列

$c4 = @{n="Grouped";e={$_.C1+$_.C2+$_.C3}} 

$csv = import-csv $incsv | select $c4 

這工作,但我試圖找到$c4動態創建e表達的一種方式。我能夠構建一個列名稱數組(在本例中,包含C1到C3),但無法弄清楚如何使用這個來構建表達式。

我有幾個限制:

  • 我堅持用V2,但無法升級的PowerShell使用的版本
  • 最終的CSV文件非常大,因此該解決方案需要考慮到這一點

任何幫助非常感謝!

謝謝。

回答

0

您可以創建一個從你從你的字段名組成的字符串一個腳本塊,例如:

$sb = [scriptblock]::create("`$_.C1+`$_.C2+`$_.C3") 
$c4 = @{n="Grouped";e=$sb} 

有了可以使用循環和各種結構來創建字符串,然後傳遞到[scriptblock]::create()字符串獲取可用於Select哈希表的表達式部分的腳本塊。

+0

工作完美,謝謝! – steveatstellar