2014-11-04 46 views
1

可能是一个简单的问题,但似乎无法找到答案即时寻找其他地方。删除;#从导出的csv sharepoint列表中

伊夫出口SharePoint列表作为包含了两个人与组选择器领域的CSV,出口时,它增加了人/组,即名称的唯一ID盈:

123; #Bob史密斯

我想要实现的是它将Bob Smith显示为如此删除的值;#以及之前的所有内容。

任何帮助将不胜感激。

+0

你有什么试过的?你能告诉我们代码,以及你收到的错误吗? – TheMadTechnician 2014-11-05 00:03:54

+0

我最初尝试删除该字符串的一部分,但我不能这样动作,只删除;#部分:'(gc“C:\ Temp \ Assets.CSV”)| #%{$ _ -replace';#',“”} | out-file $ AttachmentPath -Fo -En ascii' – 2014-11-05 00:48:22

回答

1

好的,谢谢你让你的代码(下一次,如果你编辑的问题,而不是把它变成一个评论它的更好)。

这将加载CSV文件,并且对于每个记录,它将用空白替换不需要的文本,并输出修改的记录,并将输出到更新的文件。

import-csv C:\temp\Assets.csv|%{ 
    $_.UserName = $_.UserName -replace ".*;#" 
    $_ 
}|export-csv c:\temp\assets2.csv -notype 
3

试试这个,其中NameOfField是要清理的字段或属性的名称。

$results = Import-CSV pathtofile.csv | Select-Object *,@{n='NameOfField';e={$_.NameOfField -replace '.*;#'}} -excludeproperty NameOfField 
$results | Export-CSV pathtonewfile.csv -NoTypeInformation 
+0

这将为每条记录引发错误,指出它不能添加属性'NameOfField',因为它已经存在(因为它已经包含在'*'中) – TheMadTechnician 2014-11-05 01:26:05

+0

Not if您可以像上面那样使用-ExcludeProperty。这对于更改管道内的单个属性非常方便。 – markg 2014-11-07 19:46:17