2014-05-08 40 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