2014-11-04 48 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