Эквивалент экспорта-CSV для записи-вывода - PullRequest
1 голос
/ 30 апреля 2019

Как преобразовать объект в серию строк CSV и вывести строки в другую команду?

Командлет Export-Csv будет выводить только в файл.Я хочу отправить вывод CSV в другую команду или в вывод скрипта.

В качестве обходного пути я мог бы использовать Export-Csv для файла, прочитать файл, а затем удалить файл, но в этом подходе слишком много ненужногонакладные расходы.

Export-Csv

Преобразует объекты в последовательность строк с разделенными запятыми значениями (CSV) и сохраняет строкив файл.

Ответы [ 2 ]

7 голосов
/ 30 апреля 2019

Вам следует использовать командлет ConvertTo-CSV , если вы хотите преобразовать объекты в CSV и вернуть результат в стандартный вывод вместо файла.

Командлет ConvertTo-CSV возвращает последовательность строк с разделенными запятыми значениями (CSV), которые представляют отправляемые вами объекты. Затем вы можете использовать командлет ConvertFrom-Csv для воссоздания объектов из строк CSV. Объекты, преобразованные из CSV, являются строковыми значениями исходных объектов, которые содержат значения свойств и не содержат методов.

Вы найдете большинство встроенных командлетов Export- с эквивалентом ConvertTo-. Еще один хороший способ обнаружить командлеты - использовать 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
3 голосов
/ 30 апреля 2019

Export-CSV представляет собой комбинацию Convert-ToCSV , переданную в Out-file :

Пример:

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
...