将列添加到CSV Windows PowerShell

Pau*_*aul 17 csv powershell

我有一个相当标准的带有标题的csv文件我想添加一个新列并将所有行设置为相同的数据.

原版的:

column1, column2
1,b
2,c
3,5
Run Code Online (Sandbox Code Playgroud)

column1, column2, column3
1,b, setvalue
2,c, setvalue
3,5, setvalue
Run Code Online (Sandbox Code Playgroud)

如果有人能指出我的方向很好,我就找不到任何相关的东西.对不起,Power Shell非常新.

Sha*_*evy 43

这是使用计算属性执行此操作的一种方法:

Import-Csv file.csv | 
Select-Object *,@{Name='column3';Expression={'setvalue'}} | 
Export-Csv file.csv -NoTypeInformation
Run Code Online (Sandbox Code Playgroud)

您可以在此处找到有关计算属性的更多信息:http://technet.microsoft.com/en-us/library/ff730948.aspx.

简而言之,您导入文件,将内容传递给Select-Objectcmdlet,选择所有现有属性(例如'*'),然后添加一个新属性.

  • 嗨,很抱歉恢复了这篇旧帖子,但是在导出到相同的文件名时我得到了一个空文件。当我导出到与原始名称不同的文件时,它工作正常。发生这种情况有什么原因吗? (3认同)
  • 这似乎与 Levy 的另一个[答案](/sf/answers/733656801/)有关,其中使用相同的文件进行读写。只需将第一行放在括号中即可开始!=) (3认同)

小智 10

ShayLevy的答案也适合我!

如果您不想为每个对象提供值,但代码更容易...

Import-Csv file.csv | 
Select-Object *,"column3" | 
Export-Csv file.csv -NoTypeInformation
Run Code Online (Sandbox Code Playgroud)

  • 您好,很抱歉恢复这篇旧文章,但导出到相同文件名时我得到一个空文件。当我导出到与原始名称不同的文件时,它工作正常。发生这种情况有什么原因吗? (2认同)