繁体   English   中英

PowerShell-动态合并CSV列

[英]PowerShell - Dynamically Combine CSV Columns

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

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

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

这可行,但是我试图找到一种在$c4中动态创建e表达式的方法。 我能够建立一个列名数组(在此示例中,包括C1到C3),但无法弄清楚如何使用此列来构建表达式。

我有两个限制:

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

任何帮助是极大的赞赏!

谢谢。

您可以使用由字段名称组成的字符串创建脚本块,例如:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM