Powershell将标题/行添加到CSV

时间:2013-07-23 18:17:20

标签: powershell csv

我有一段代码可以从文件管理器生成一个sharenames的CSV。

它是制表符分隔的CSV,只是sharenames,不包含其他详细信息。

我想接受输出:

010
2012 Comp
2012 Comp Plan Team

并将其替换为:

\\<filer>\010
\\<filer>\2012 Comp
\\<filer>\2012 Comp Plan Team

现在我有以下内容:

$Content = import-csv C:\temp\new.txt -Delimiter "`t"

我可以使用Add-Member命令将新属性/值添加到数组中吗?或者我是以错误的方式来做这件事的?


到目前为止,评论很棒,谢谢你们。我忘了给这个添加另一个观点。我想知道如何在csv中添加另一列?严格来说是文件管理员名称。我正在考虑生成大量的共享名称和文件管理器名称。所以我只想知道如何将其添加到其中?

2 个答案:

答案 0 :(得分:0)

不导入CSV。但是,您应该使用Get-Content,IMO。

$content = Get-Content C:\test.csv
$content | ForEach-Object { '\\<filer>\'+$_ } | Set-Content C:\new-Test.csv

答案 1 :(得分:0)

如果您展示的内容是该文件的唯一内容,则无需使用Import-Csv,只需使用Get-Content

(Get-Content 'C:\temp\new.txt') -replace '^', '\\<filer>\'

上面只产生一个字符串数组。要使这个为2列的CSV,您可以做几件事,例如将字符串数组转换为具有相同2个属性的对象数组:

(Get-Content 'C:\temp\new.txt') -replace '^', '\\<filer>\' |
  select @{n='Path';e={$_}}, @{n='col2';e={...}}

或将,something附加到字符串并将数组转换为CSV:

(Get-Content 'C:\temp\new.txt') -replace '^', '\\<filer>\' -replace '$', ',...' |
  ConvertFrom-Csv