我有一段代码可以从文件管理器生成一个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中添加另一列?严格来说是文件管理员名称。我正在考虑生成大量的共享名称和文件管理器名称。所以我只想知道如何将其添加到其中?
答案 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