Поделиться через


ConvertTo-Csv

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

Синтаксис

ConvertTo-Csv
              [-InputObject] <psobject>
              [[-Delimiter] <char>]
              [-NoTypeInformation]
              [<CommonParameters>]
ConvertTo-Csv
              [-InputObject] <psobject>
              [-UseCulture]
              [-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 'PowerShell' | ConvertTo-Csv -NoTypeInformation

"Name","SI","Handles","VM","WS","PM","NPM","Path","Company","CPU","FileVersion", ...
"powershell","11","691","2204036739072","175943680","132665344","33312", ...

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

Пример 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.

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

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

(Get-Culture).TextInfo.ListSeparator
Get-WinEvent -LogName 'Windows PowerShell' | ConvertTo-Csv -UseCulture -NoTypeInformation

,
"Message","Id","Version","Qualifiers","Level","Task","Opcode","Keywords","RecordId", ...
"Error Message = System error","403",,"0","4","4",,"36028797018963968","46891","PowerShell", ...

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

Параметры

-Delimiter

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

Type:Char
Position:1
Default value:comma (,)
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:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseCulture

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

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

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

PSObject

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

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

String

Этот командлет возвращает одну или несколько строк, представляющих каждый преобразованный объект.

Примечания

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

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

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

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