Powershell 创建包含多个列的csv文件
我有多个PSCustomObjects,我想将这些值存储在csv文件中 我的代码将值存储在csv文件中,但我总是得到一个只有一列的csv文件 以下是我创建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
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 |格式表”。只要您的区域性使用逗号作为分隔符,您就会看到一个具有两列的格式良好的表。