PowerShell - 动态组合CSV列

时间:2014-05-08 03:25:34

标签: powershell csv

我有一个CSV文件,我使用PowerShell进行重组,我希望在使用通配符匹配名称的多个字段中组合值。我在导入它们时已经选择了我的CSV字段,因此我想使用类似于以下内容的东西:

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

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

这很有效,但我想找到一种在e中动态创建$c4表达式的方法。我能够构建一个列名称数组(在这个例子中,包含C1到C3),但是不能弄清楚如何使用它来构建表达式。

我有几个限制:

  • 我遇到了V2,无法升级正在使用的PowerShell版本
  • 最终的CSV文件非常大,因此解决方案需要考虑到这一点

非常感谢任何帮助!

感谢。

1 个答案:

答案 0 :(得分:0)

您可以从字段名称中创建一个字符串块,例如:

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

使用字符串,您可以使用循环和各种构造来创建字符串,然后将其传递给[scriptblock]::create()以获取可用于Select哈希表的Expression部分的脚本块。