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 |
Входные данные
Вы можете передать любой объект с адаптером расширенной системы типов (ETS) в ConvertTo-CSV
.
Выходные данные
Выходные данные в формате 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-CSV
ConvertTo-CSV
упорядочивает строки на основе свойств первого отложенного объекта. Если остальные объекты не имеют одного из указанных свойств, значение свойства этого объекта равно NULL, представленное двумя последовательными запятыми. Если у остальных объектов есть дополнительные свойства, их значения игнорируются.