【问题标题】:Powershell - Export a List of Objects to CSVPowershell - 将对象列表导出到 CSV
【发布时间】:2014-08-11 06:57:03
【问题描述】:

我正在努力将我的对象列表导出到 csv 文件。 到目前为止,我有以下代码:

$accessListPath = "example.cfg"
$Outputfile = "ScriptOutput.csv"

$accessList = @()
$xml = [XML](Get-Content -Path $accessListPath)

$xml | Select-Xml -xpath "//value" | %{  

    $accessList += New-Object -TypeName PSObject -Property @{
        Rolle = $_.Node.roll
        Gruppe = $_.Node.group
        ADString =  $_.Node."#text".trim()
    }
} 

Export-Csv -InputObject $accessList -Path $Outputfile 

对应的XML文件是这样的:

<?xml version="1.0" encoding="UTF-8"?>
<ldap>
    <host>x.x.x.x
        <users>
            <user>DC=Example,DC=internal</user>
        </users>
        <rights>
            <var>distinguishedName
                <value>CN=...,OU=user,OU=...
                    <roll>2</roll>
                </value>
                <value>CN=...,OU=user,OU=...
                    <roll>5</roll>
                    <roll>18</roll>
            </value>
            <value>CN=John Doe*
                <roll>9</roll>
            </value>
            <value>CN=Domain Admin*
                <group>Administrator</group>
                <roll>1</roll>
            </value>
            <value>CN=...,OU=user,...
                <group>Example Group</group>
                <roll>8</roll>
                <roll>12</roll>
                <roll>14</roll>
                <roll>15</roll>
            </value>
        </var>
        <var>search:member=&lt;userdn&gt;
            <value>CN=group1*
                <group>01 Group XY</group>
                <roll>1</roll>
            </value>
            <value>CN=Client1,OU=*
                <roll>3</roll>
            </value>
            <value>CN=...,OU=*
                <roll>5</roll>
            </value>
            <value>CN=ImportantClient06*
                <group>06ImportantGroup</group>
                <roll>8</roll>
                <roll>11</roll>
                <roll>12</roll>
            </value>
        </var>
    </rights>
</host>

这是 .csv 文件中的输出:

TYPE System.Object[]
计数长度 LongLength 等级 SyncRoot IsReadOnly IsFixedSize IsSynchronized 49 49 49 1 System.Object[] 假真假

如果有任何建议,我将不胜感激。

【问题讨论】:

    标签: xml object powershell csv


    【解决方案1】:

    试试:

    $accessList | Export-Csv -Path $Outputfile
    

    当您指定 -InputObject $accessList 时,您说的是使用 THIS 对象。这实际上导出了数组,这就是您所看到的。当您使用$accessList | Export-CSV ... 时,它会将数组中的项发送到管道中,以便导出所有项。

    另外,您可以添加 -NoTypeInformation 以删除 TYPE ... 行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-17
      • 1970-01-01
      • 2021-08-17
      • 1970-01-01
      相关资源
      最近更新 更多