不太了解powershells“-Join”和“ConvertTo Csv”

不太了解powershells“-Join”和“ConvertTo Csv”,powershell,csv,join,Powershell,Csv,Join,我使用以下代码创建csv并将其显示为表格: $Keys = ("OrderDate","Region","Rep","Product","Units","Unit Cost","Total") $Csv = @() $Keys | ForEach-Object { $Csv += $_ -Join "," } $Csv | ConvertFrom-Csv 我的输出是: OrderDate OrderDate,Region OrderDate,Region,Rep OrderD

我使用以下代码创建csv并将其显示为表格:

$Keys = ("OrderDate","Region","Rep","Product","Units","Unit Cost","Total")
$Csv = @()    
$Keys | ForEach-Object { 
    $Csv += $_ -Join ","
}
$Csv | ConvertFrom-Csv
我的输出是:

OrderDate
OrderDate,Region
OrderDate,Region,Rep
OrderDate,Region,Rep,Product
OrderDate,Region,Rep,Product,Units
OrderDate,Region,Rep,Product,Units,Unit Cost
OrderDate,Region,Rep,Product,Units,Unit Cost,Total

OrderDate
---------
Region   
Rep      
Product  
Units    
Unit Cost
Total    
我希望将这些行格式化为表的标题,如下所示:

OrderDate  Region  Rep  ProductUnits  Unit Cost  Total
-----------  --------  ----  ---------------  -----------  ------
$Keys = "OrderDate","Region","Rep","Product","Units","Unit Cost","Total"
$Object = Select-Object -InputObject 0 -Property $Keys

您正在尝试的操作可以如下所示:

OrderDate  Region  Rep  ProductUnits  Unit Cost  Total
-----------  --------  ----  ---------------  -----------  ------
$Keys = "OrderDate","Region","Rep","Product","Units","Unit Cost","Total"
$Object = Select-Object -InputObject 0 -Property $Keys
当编写脚本时不知道属性是什么时,这通常最有用。输入对象并不重要,只要它是标量值,即不是集合

要获得指定的确切输出,必须执行$Object | Format Table,因为PowerShell默认为列出自定义对象的输出,但这会将对象更改为字符串,因此仅用于显示

当您确实知道对象的属性时,创建对象的一种更为常用的模式是:

$Object = [PSCustomObject]@{
    "OrderDate" = # Some Value 
    "Region" = # Some Value 
    "Rep" = # Some Value 
    "Product" = # Some Value 
    "Units" = # Some Value 
    "Unit Cost" = # Some Value 
    "Total" = # Some Value 
}
在这里,您可以实例化对象并立即指定所需的值。

$Keys |格式化表格?但如果没有数据,这个问题就没有多大意义。。。