Powershell 将对象中的数据导出到csv中的单个单元格

Powershell 将对象中的数据导出到csv中的单个单元格,powershell,export-to-excel,Powershell,Export To Excel,我需要将存储在以下对象名称部分的数据导出到csv中的单个单元格 $localp = Get-Printer | where Shared -eq $false 但每当我这样做: $localp.Name | export-csv -path "test.csv" 我明白了: 键入System.String 长 18 29 22 3. 9试试看 $localp |选择对象名称|导出Csv-Path test.Csv-notype信息 从我的回答来看 导出Csv导出对象特性及其值的表。 因为您的

我需要将存储在以下对象名称部分的数据导出到csv中的单个单元格

$localp = Get-Printer | where Shared -eq $false
但每当我这样做:

$localp.Name | export-csv -path "test.csv"
我明白了:

键入System.String 长 18 29 22 3. 9试试看

$localp |选择对象名称|导出Csv-Path test.Csv-notype信息

从我的回答来看

导出Csv导出对象特性及其值的表。 因为您的脚本正在生成字符串对象 它们有长度,这就是你得到的


您似乎不需要标题和单个单元格, 这不是一个正确的csv文件

如何将打印机彼此分开

这一行:

('"{0}"' -f ((Get-Printer | where Shared -eq $false).Name -join ',')
创建双引号文本,如下所示:

"Send To OneNote 2016,Microsoft XPS Document Writer,Microsoft Print to PDF,Fax"
您可以使用设置的内容写入文件

将生成一个文件:

PS> Get-Content .\test.csv
"Printers"
"Send To OneNote 2016,Microsoft XPS Document Writer,Microsoft Print to PDF,Fax"

修改后我得到同样奇怪的行为。将命令更改为$localp | select name | export csv-Path test.csv仍然有效。看起来这可能是出于设计。使用点符号返回一个[string]对象,该对象的唯一属性是长度。使用select方法返回一个CimInstance对象,该对象的唯一属性是NameThat worked!现在的问题是,它将每个名称输出到它们自己的行,而不是我需要它执行的单个单元格。它还包括名称字段,我不需要它。标题是硬编码的,因为我得到了50多个不同的对象组,需要将每个对象的数据导出到它自己的单元格中,一个单元格中的打印机列表,另一个单元格中的已安装应用列表,等等。有没有办法用换行符连接它们?哪种变体-加入“仅在第一个打印机名称后切断所有内容的打印”仅当您以错误的方式输出时,请参阅更改的答案。
PS> Get-Content .\test.csv
"Printers"
"Send To OneNote 2016,Microsoft XPS Document Writer,Microsoft Print to PDF,Fax"
-join "`n"
PS> $printers

Printers
--------
Send To OneNote 2016...

PS> $printers|fl

Printers : Send To OneNote 2016
           Microsoft XPS Document Writer
           Microsoft Print to PDF
           Fax

PS> $printers |export-csv .\test.csv -notype
PS> gc .\test.csv
"Printers"
"Send To OneNote 2016
Microsoft XPS Document Writer
Microsoft Print to PDF
Fax"