导出CSV格式化回车

时间:2014-08-27 14:26:10

标签: powershell csv export

我正在从活动目录中检索信息,但是当我尝试使用Export-CSV导出信息时,回车会出现一些问题。它在CSV文件中为它找到的每个返回开始一个新行,而它实际应该保持在当前行。

$User = Get-ADUser Bob -Properties *
Display name    : Bob Smith
Notes           : Line 1
                  Line 2
                  Line 3
E-mail          : Bob.Smith@company.com

$User | Export-CSV 'C:\file.csv'
Display name, Notes, E-mail
Bob Smith, Line 1
Line 2
Line 3
Bob.Smith@company.com

如何获得以下输出?

$User | Export-CSV 'C:\file.csv'
Display name, Notes, E-mail
Bob Smith, Line 1 Line 2 Line 3, Bob.Smith@company.com

我尝试过使用编码,其他分隔符,...无法真正解决这个问题。

解决方案

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

3 个答案:

答案 0 :(得分:3)

如果您在使用特定字段插入CR / LF时遇到问题,则始终可以在Select运算符的表达式中对Notes执行-join。类似的东西:

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

这将输出所需的输出。

如果您遇到多个字段的问题,那么就我如何解决它而言会更复杂一些(通过将对象复制为自定义对象来重新创建所有字段,并使用-join或处理它们的值)将“`n”改为“,”)

答案 1 :(得分:0)

你得到的结果应该是正确的,因为它与#34;,#34;分开。如果您通过" Import-Csv"导入csv;你得到了正确的数据。问题是财产"注意"。有换行符。排除笔记,用" $ null"替换``r`n(换行符)。

答案 2 :(得分:0)

真的很老的帖子,但经过广泛的谷歌搜索仍然找不到答案,但我自己偶然发现了正确的答案并决定分享。 问题是输出CSV有换行符。

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

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

输出CSV看起来像“-character总是在下一行:

“名称”,“电子邮件”,“SAM帐户名”,“工作站”

“Pete”;“pete@xx.fi”;“pete”;“W7DT1335 W7LT1812

“Anne”;“anne@xx.fi”;“anne”;“W7DT13565 W7LT1612

“Anton”;“Anton@xx.fi”;“anton”;“W7DT1345 W7LT1752

这对替换也不是很好。

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

- > CSV看起来像:

“名称”,“电子邮件”,“SAM帐户名”,“工作站” “Pete”;“pete@xx.fi”;“pete”;“W7DT1335 W7LT1812

X“

“Anne”;“anne@xx.fi”;“anne”;“W7DT13565 W7LT1612

X“

“Anton”;“Anton@xx.fi”;“anton”;“W7DT1345 W7LT1752

X“

我的解决方案是像这样流出字符串: $resultti = $result.computername -join " " | Out-String -Stream

CSV很好看。

“名称”,“电子邮件”,“SAM帐户名”,“工作站”

“Pete”;“pete@xx.fi”;“pete”;“W7DT1335 W7LT1812”

“Anne”;“anne@xx.fi”;“anne”;“W7DT13565 W7LT1612”

“Anton”;“Anton@xx.fi”;“anton”;“W7DT1345 W7LT1752”

相关问题