ConvertTo-Csv

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

Синтаксис

ConvertTo-Csv
              [-InputObject] <PSObject>
              [-IncludeTypeInformation]
              [-NoTypeInformation]
              [<CommonParameters>]
ConvertTo-Csv
              [-InputObject] <PSObject>
              [[-Delimiter] <Char>]
              [-IncludeTypeInformation]
              [-NoTypeInformation]
              [<CommonParameters>]
ConvertTo-Csv
              [-InputObject] <PSObject>
              [-UseCulture]
              [-IncludeTypeInformation]
              [-NoTypeInformation]
              [<CommonParameters>]

Описание

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

Командлет можно использовать для Export-Csv преобразования объектов в строки CSV. Export-CSV аналогичен ConvertTo-CSV, за исключением того, что он сохраняет строки CSV в файл.

Командлет ConvertTo-CSV имеет параметры, чтобы указать разделитель, отличный от запятой, или использовать текущий язык и региональные параметры в качестве разделителя.

Примеры

Пример 1. Преобразование объекта в CSV

В этом примере объект Process преобразуется в строку CSV.

Get-Process -Name pwsh | ConvertTo-Csv -NoTypeInformation

"Name","SI","Handles","VM","WS","PM","NPM","Path","Parent","Company","CPU","FileVersion", ...
"pwsh","8","950","2204001161216","100925440","59686912","67104", ...

Командлет Get-Process получает объект Process и использует параметр Name для указания процесса PowerShell. Объект процесса отправляется по конвейеру командлету ConvertTo-CSV . Командлет ConvertTo-CSV преобразует объект в строки CSV. Параметр NoTypeInformation удаляет заголовок сведений #TYPE из выходных данных CSV и не требуется в PowerShell 6.

Пример 2. Преобразование объекта DateTime в CSV

В этом примере объект DateTime преобразуется в строку CSV.

$Date = Get-Date
ConvertTo-Csv -InputObject $Date -Delimiter ';' -NoTypeInformation

"DisplayHint";"DateTime";"Date";"Day";"DayOfWeek";"DayOfYear";"Hour";"Kind";"Millisecond";"Minute";"Month";"Second";"Ticks";"TimeOfDay";"Year"
"DateTime";"Friday, January 4, 2019 14:40:51";"1/4/2019 00:00:00";"4";"Friday";"4";"14";"Local";"711";"40";"1";"51";"636822096517114991";"14:40:51.7114991";"2019"

Командлет Get-Date получает объект DateTime и сохраняет его в переменной $Date . Командлет ConvertTo-Csv преобразует объект DateTime в строки. Параметр InputObject использует объект DateTime , хранящийся в переменной $Date . Параметр Разделителя задает точку с запятой для разделения строковых значений. Параметр NoTypeInformation удаляет заголовок сведений #TYPE из выходных данных CSV и не требуется в PowerShell 6.

Пример 3. Преобразование журнала событий PowerShell в CSV

В этом примере журнал событий Windows для PowerShell преобразуется в ряд строк CSV.

(Get-Culture).TextInfo.ListSeparator
Get-WinEvent -LogName 'PowerShellCore/Operational' | ConvertTo-Csv -UseCulture -NoTypeInformation

,
"Message","Id","Version","Qualifiers","Level","Task","Opcode","Keywords","RecordId", ...
"Error Message = System error""4100","1",,"3","106","19","0","31716","PowerShellCore", ...

Командлет Get-Culture использует вложенные свойства TextInfo и ListSeparator и отображает разделитель списка по умолчанию текущего языка и региональных параметров. Командлет Get-WinEvent получает объекты журнала событий и использует параметр LogName для указания имени файла журнала. Объекты журнала событий отправляются по конвейеру в ConvertTo-Csv командлет. Командлет ConvertTo-Csv преобразует объекты журнала событий в ряд строк CSV. Параметр UseCulture использует разделитель списка по умолчанию текущего языка и региональных параметров в качестве разделителя. Параметр NoTypeInformation удаляет заголовок сведений #TYPE из выходных данных CSV и не требуется в PowerShell 6.

Параметры

-Delimiter

Указывает разделитель для разделения значений свойств в строках CSV. Значение по умолчанию — запятая (,). Введите символ, например двоеточие (:). Чтобы указать точку с запятой (;), заключите ее в одинарные кавычки.

Type:Char
Position:1
Default value:comma (,)
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-IncludeTypeInformation

Если этот параметр используется в первой строке выходных данных, содержится #TYPE за которым следует полное имя типа объекта. Например, #TYPE System.Diagnostics.Process.

Этот параметр появился в PowerShell 6.0.

Type:SwitchParameter
Aliases:ITI
Position:Named
Default value:#TYPE <Object>
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Указывает объекты, преобразованные в строки CSV. Введите переменную, которая содержит объекты, или команду или выражение, которое возвращает объекты. Вы также можете передать объекты в ConvertTo-CSV.

Type:PSObject
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-NoTypeInformation

Удаляет заголовок сведений #TYPE из выходных данных. Этот параметр стал значением по умолчанию в PowerShell 6.0 и включен для обеспечения обратной совместимости.

Type:SwitchParameter
Aliases:NTI
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseCulture

Использует разделитель списка для текущего языка и региональных параметров в качестве разделителя элементов. Чтобы найти разделитель списка для языка и региональных параметров, используйте следующую команду: (Get-Culture).TextInfo.ListSeparator

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Входные данные

PSObject

Вы можете передать любой объект с адаптером расширенной системы типов (ETS) в ConvertTo-CSV.

Выходные данные

String

Выходные данные в формате CSV возвращаются в виде коллекции строк.

Примечания

В формате CSV каждый объект представлен как разделенный запятыми список значений свойств. Значения свойств преобразуются в строки с помощью метода ToString() объекта. Строки представлены именем значения свойства. ConvertTo-CSV не экспортируют методы объекта.

Строки CSV выводятся следующим образом:

  • Если используется IncludeTypeInformation , первая строка состоит из #TYPE за которым следует полное имя типа объекта. Например, #TYPE System.Diagnostics.Process.
  • Если IncludeTypeInformation не используется первая строка, включает заголовки столбцов. Заголовки содержат имена свойств первого объекта в виде списка, разделенного запятыми.
  • Остальные строки содержат разделенные запятыми списки значений свойств каждого объекта.

Начиная с PowerShell 6.0 поведение ConvertTo-CSV по умолчанию заключается в том, чтобы не включать сведения #TYPE в CSV и NoTypeInformation . IncludeTypeInformation можно использовать для включения сведений #TYPE и эмуляции поведения ConvertTo-CSV по умолчанию до PowerShell 6.0.

При отправке нескольких объектов ConvertTo-CSVConvertTo-CSV упорядочивает строки на основе свойств первого отложенного объекта. Если остальные объекты не имеют одного из указанных свойств, значение свойства этого объекта равно NULL, представленное двумя последовательными запятыми. Если у остальных объектов есть дополнительные свойства, их значения игнорируются.