等价于Export-Csv到Write-Output

时间:2019-04-30 12:52:27

标签: powershell powershell-v3.0

如何将对象转换为一系列CSV字符串并将其输出到另一个命令?

Export-Csv cmdlet仅输出到文件。我想将CSV输出发送到另一个命令或脚本输出。

作为一种解决方法,我可以对文件使用Export-Csv,读取文件,然后删除文件,但是这种方法有太多不必要的开销。

  

Export-Csv

     

将对象转换为一系列逗号分隔值(CSV)字符串   并将字符串保存到文件中。

2 个答案:

答案 0 :(得分:7)

如果要将对象转换为CSV并将结果返回到stdout而不是文件,则应使用ConvertTo-CSV cmdlet。

  

ConvertTo-CSV cmdlet返回一系列逗号分隔值(CSV)字符串,这些字符串代表您提交的对象。然后,您可以使用ConvertFrom-Csv cmdlet从CSV字符串重新创建对象。从CSV转换的对象是原始对象的字符串值,其中包含属性值且没有方法。

您会发现大多数内置Export- cmdlet都具有ConvertTo-等效项。发现cmdlet的另一种好方法是对通配符使用Get-Command

~> Get-Command *csv

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           epcsv -> Export-Csv
Alias           ipcsv -> Import-Csv
Cmdlet          ConvertFrom-Csv                                    3.1.0.0    Microsoft.PowerShell.Utility
Cmdlet          ConvertTo-Csv                                      3.1.0.0    Microsoft.PowerShell.Utility
Cmdlet          Export-Csv                                         3.1.0.0    Microsoft.PowerShell.Utility
Cmdlet          Import-Csv                                         3.1.0.0    Microsoft.PowerShell.Utility

答案 1 :(得分:3)

导出csv 转换为CSV 管道传输到文件外的组合:

例如:

Get-Process | Select-Object -property Name,ID,VM,PM | Convert-ToCSV | Out-File test2.html

您可以使用:

$a = Get-Process | Select-Object -property Name,ID,VM,PM | Convert-ToCSV