Powershell 创建包含多个列的csv文件

Powershell 创建包含多个列的csv文件,powershell,Powershell,我有多个PSCustomObjects,我想将这些值存储在csv文件中 我的代码将值存储在csv文件中,但我总是得到一个只有一列的csv文件 以下是我创建csv文件的代码: function Create-CSVFile { <# Create a CSV file with the information of the xml files #> [CmdletBinding ()] Param ( [Paramete

我有多个PSCustomObjects,我想将这些值存储在csv文件中

我的代码将值存储在csv文件中,但我总是得到一个只有一列的csv文件

以下是我创建csv文件的代码:

function Create-CSVFile
{
    <#
    Create a CSV file with the information of the xml files
    #>
    [CmdletBinding ()]
    Param
    (
         [Parameter(
            Mandatory,
            Position=0)] 
         [PSCustomObject] $values
    )
    $csvFile = Join-Path -Path $PSScriptRoot -ChildPath "xmlInformation.csv"
    $values | Export-Csv $csvFile -NoTypeInformation
 }
"ID","Owners"
"32472304239472304","Klaus,Hans"
"35057435349563444","Michael"
"54353453453453455","Olaf"
"12354534534534553","Anna,Thomas"
以下是我的PSCustomObject示例:

[PSCustomObject]@{
  'ID' = $metadata.id
  'Owners' = $metadata.owners
}
ID                              Owners                          
--                              ------                          
32472304239472304               Klaus,Hans
35057435349563444               Michael
54353453453453455               Olaf
12354534534534553               Anna,Thomas
以下是csv文件的结果:

function Create-CSVFile
{
    <#
    Create a CSV file with the information of the xml files
    #>
    [CmdletBinding ()]
    Param
    (
         [Parameter(
            Mandatory,
            Position=0)] 
         [PSCustomObject] $values
    )
    $csvFile = Join-Path -Path $PSScriptRoot -ChildPath "xmlInformation.csv"
    $values | Export-Csv $csvFile -NoTypeInformation
 }
"ID","Owners"
"32472304239472304","Klaus,Hans"
"35057435349563444","Michael"
"54353453453453455","Olaf"
"12354534534534553","Anna,Thomas"

csv文件中的行看起来不错,但所有内容都放在第一列。

您的函数看起来不错,错误可能是您调用函数的方式

下面是我如何尝试的:

$myObject = [PSCustomObject]@{
    a = 22
    b = 33
}

Create-CSVFile $myObject
结果:

"a","b"
"22","33"

如果我理解正确,那么您可以通过双击csv文件查看结果,因此它将在Excel中打开

系统的区域设置(因此Excel)可能使用与标准逗号不同的分隔符

要生成与Excel使用的分隔符相同的csv文件,请添加开关
-UseCulture

Export-Csv $csvFile -UseCulture -NoTypeInformation

显示您拥有的PSCustomObjects示例以及生成的CSV文件。CSV文件看起来确实不错。尝试“导入Csv myfile.Csv |格式表”。只要您的区域性使用逗号作为分隔符,您就会看到一个具有两列的格式良好的表。