展开PSobjects以导出到csv

时间:2016-07-07 01:03:57

标签: csv powershell

如何将PSobjects返回的Get-Help转换为字符串并导出到csv?。我认为这很简单,但我无法获得我想要的格式。从阅读以前的答案,我正在尝试:

Get-Help Get-Content | Select-Object -First 1 -Property @{
    Name="temp"
    Expression = { $_.Name,$_.Synopsis,$_.syntax,$_.Description }
} | Select-Object -ExpandProperty temp 

这几乎是我想要的,除了看起来字段是数组而不是字符串。我试图为每个元素只有一个字符串,即(名称,摘要,语法等)。

如果我尝试将其导出到csv,我会得到对象的长度而不是对象本身:

Get-Help Get-Content | Select-Object -First 1 -Property @{
    Name="temp"
    Expression = { $_.Name,$_.Synopsis,$_.syntax,$_.Description }
} | Select-Object -ExpandProperty temp | export-csv -NoType -Path $env:HOME\test.txt

1 个答案:

答案 0 :(得分:1)

我想你想要在一个单独的列中导出每个属性(你的脚本目前只导出一个)。为此,您必须选择每个属性。对于SyntaxDescription,我使用Out-String cmdlet将其转换为字符串,并移除所有\r\n以获取有效的CSV:

Get-Help Get-Content | Select-Object -First 1 |
    Select-Object Name, Synopsis, 
        @{l='Syntax'; e={($_.Syntax | out-string) -replace "`r?`n"}}, 
        @{l='Description '; e={($_.Description | out-string)-replace "`r?`n"}} |
    Export-Csv -Path $env:HOME\test.txt -NoTypeInformation