2014-08-27 82 views
2

我從活動目錄中檢索信息,但是當我嘗試用Export-CSV導出時,回車有一些問題。它會在CSV文件中爲找到的每個回報開始一個新行,但實際上它應保留在當前行中。Export-CSV格式化回車

$User = Get-ADUser Bob -Properties * 
Display name : Bob Smith 
Notes   : Line 1 
        Line 2 
        Line 3 
E-mail   : [email protected] 

$User | Export-CSV 'C:\file.csv' 
Display name, Notes, E-mail 
Bob Smith, Line 1 
Line 2 
Line 3 
[email protected] 

如何獲得以下輸出?

$User | Export-CSV 'C:\file.csv' 
Display name, Notes, E-mail 
Bob Smith, Line 1 Line 2 Line 3, [email protected] 

我已經試過編碼,其他分隔符,..不能真正弄清楚這一個。

解決方案

$User | Select 'Display Name', @{l='Notes';e={$_.Notes -replace "`n"," "}}, E-mail | Export-Csv 'C:\file.csv' -NoTypeInformation -Delimiter ';' 

回答

2

如果您在插入特定字段的CR/LF時遇到問題,則可以在Select運算符的表達式上始終在Notes上執行-join。例如:

$User | Select DisplayName, @{l='Notes';e={$_.Notes -join ", "}}, Email | Export-Csv 'C:\files.csv' 

這將輸出所需的輸出。

如果您遇到了多個字段的問題,那麼就我的解決方法而言,它會變得更加複雜(通過將對象重現爲重新創建所有字段的自定義對象並使用-join處理它們的值或用''替換「n」)

+0

感謝您的提示,它工作很棒:)我按照你的建議使用了'-replace'方法。 OP更新**解決方案**。 – DarkLite1 2014-08-28 06:57:02

0

你,因爲它是由seperatet schould是正確的 「」 結果。如果您通過「Import-Csv」導入csv,您將獲得正確的數據。問題是財產「筆記」。有換行符。排除註釋並用「$ null」代替``r`n(換行符)。

0

真的很老的線程,但廣泛的谷歌搜索後,仍然無法找到答案,但由我自己找到正確的答案,並決定分享。 問題在於輸出CSV出現換行符。

$resultti = $result.computername -join " " | Out-String

$resultti | Export-Csv -Path $outfile -Delimiter ";" -NoTypeInformation -Encoding UTF8

和出把CSV看上去像 「個字符數總是在下一行:

」姓名「,」 電子郵件 「」 SAM帳戶名 「」 工作站」

「皮特」; 「[email protected]」; 「皮特」; 「W7DT1335 W7LT1812

「安」; 「[email protected]」; 「安」; 「W7DT13565 W7LT1612

「安東」, 「[email protected]」; 「安東」,「W7DT1345 W7LT1752

這並沒有最終取代好。

$resultti = $resultti.Replace("`n","x") 

- > CSV看上去像:

「姓名」, 「電子郵件」, 「SAM帳戶名」, 「工作站」 「皮特」, 「[email protected]」; 「皮特」; 「W7DT1335 W7LT1812

X」

「安」; 「[email protected]」; 「安」; 「W7DT13565 W7LT1612

X」

「安東」, 「[email protected]」, 「安東」, 「W7DT1345 W7LT1752

X」

解決方案對我來說是流出來串這樣的: $resultti = $result.computername -join " " | Out-String -Stream

和CSV照顧好了。

「姓名」, 「電子郵件」, 「SAM帳戶名」, 「工作站」

「皮特」, 「[email protected]」; 「皮特」, 「W7DT1335 W7LT1812」

「安妮」 ; 「[email protected]」; 「安」; 「W7DT13565 W7LT1612」

「安東」, 「[email protected]」; 「安東」; 「W7DT1345 W7LT1752」