导入CSV在C#中使用PowerShell添加列

时间:2015-12-07 07:10:59

标签: c# .net csv powershell

我有一个相当大的CSV文件(27MB),其中至少有400,000行。我想向它添加一个列,就像在this method中一样并导出它,除了我必须在C#中执行它。我添加了System.Management.AutomationMicrosoft.PowerShell命名空间。我还希望新列成为CSV中的第一列。我怎样才能以最快的方式实现这一目标?

虽然使用here的方法可行,但我特别不想使用Windows提供的任何自定义库。

这是我尝试过的,但它似乎不起作用:

PowerShell ps = PowerShell.Create();
ps.AddCommand("Import-Csv " + csvFileName + " |Select-Object *,@{Name='Name' ;Expression = {'setvalue'}} | Export-Csv " + csvFileName + " -NoTypeInformation");
ps.Invoke();

1 个答案:

答案 0 :(得分:3)

我通过将ps.AddCommand更改为ps.AddScript并用单引号将csvFileName包围来解决了这个问题。修改后的代码如下

PowerShell ps = PowerShell.Create();
ps.AddScript("Import-Csv '" + csvFileName + "' |Select-Object *,@{Name='Name' ;Expression = {'setvalue'}} | Export-Csv '" + newCsvFileName + "' -NoTypeInformation");
ps.Invoke();