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

时间:2018-07-25 14:40:32

标签: powershell export-to-excel

我需要将以下对象的“名称”部分中存储的数据导出到csv中的单个CELL中。

$localp = Get-Printer | where Shared -eq $false

但是只要我这样做:

$localp.Name | export-csv -path "test.csv"

我明白了:

#TYPE System.String
长度
18
29
22
3
9

2 个答案:

答案 0 :(得分:0)

尝试

$localp | Select-Object Name | Export-Csv -Path "test.csv" -NoTypeInformation

thisAnsgar答案中

  

Export-Csv导出对象属性及其值的表。   由于您的脚本正在产生字符串对象,并且是唯一的属性   他们只有长度,这就是你得到的。

答案 1 :(得分:0)

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

如何将打印机彼此分开?

此行:

('"{0}"' -f ((Get-Printer | where Shared -eq $false).Name -join ',')

创建这样的双引号文本:

"Send To OneNote 2016,Microsoft XPS Document Writer,Microsoft Print to PDF,Fax"

您可以使用Set-Content

写入文件
$Printers = [PSCustomObject]@{
    Printers = (Get-Printer | where Shared -eq $false).Name -join ','}
$Printers |Export-Csv '.\test.csv' -NoTypeInformation

将产生一个文件:

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"