不太了解powershells“-Join”和“ConvertTo Csv”
我使用以下代码创建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
$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 |格式化表格?但如果没有数据,这个问题就没有多大意义。。。