ConvertTo-Csv
Converte objetos .NET em uma série de cadeias de caracteres de valor separado por caractere (CSV).
Syntax
ConvertTo-Csv
[-InputObject] <psobject>
[[-Delimiter] <char>]
[-NoTypeInformation]
[<CommonParameters>]
ConvertTo-Csv
[-InputObject] <psobject>
[-UseCulture]
[-NoTypeInformation]
[<CommonParameters>]
Description
O ConvertTo-CSV
cmdlet retorna uma série de cadeias de caracteres de valor separado por caractere (CSV) que representam os objetos enviados. Em seguida, você pode usar o ConvertFrom-Csv
cmdlet para recriar objetos a partir das cadeias de caracteres CSV. Os objetos convertidos de CSV são valores de cadeia de caracteres dos objetos originais que contêm valores de propriedade e nenhum método.
Você pode usar o Export-Csv
cmdlet para converter objetos em cadeias de caracteres CSV. Export-CSV
é semelhante ao ConvertTo-CSV
, exceto que ele salva as cadeias de caracteres CSV em um arquivo.
O ConvertTo-CSV
cmdlet tem parâmetros para especificar um delimitador diferente de uma vírgula ou usar a cultura atual como delimitador.
Exemplos
Exemplo 1: Converter um objeto em CSV
Este exemplo converte um objeto Process em uma cadeia de caracteres 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", ...
O Get-Process
cmdlet obtém o objeto Process e usa o parâmetro Name para especificar o processo do PowerShell. O objeto de processo é enviado pelo pipeline para o ConvertTo-CSV
cmdlet. O ConvertTo-CSV
cmdlet converte o objeto em cadeias de caracteres CSV. O parâmetro NoTypeInformation remove o cabeçalho de informações #TYPE da saída CSV.
Exemplo 2: Converter um objeto DateTime em CSV
Este exemplo converte um objeto DateTime em uma cadeia de caracteres 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"
O Get-Date
cmdlet obtém o objeto DateTime e o salva na $Date
variável. O ConvertTo-Csv
cmdlet converte o objeto DateTime em cadeias de caracteres. O parâmetro InputObject usa o objeto DateTime armazenado na $Date
variável. O parâmetro Delimiter especifica um ponto-e-vírgula para separar os valores da cadeia de caracteres. O parâmetro NoTypeInformation remove o cabeçalho de informações #TYPE da saída CSV.
Exemplo 3: Converter o log de eventos do PowerShell em CSV
Este exemplo converte o log de eventos do Windows para PowerShell em uma série de cadeias de caracteres 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", ...
O Get-Culture
cmdlet usa as propriedades aninhadas TextInfo e ListSeparator e exibe o separador de lista padrão da cultura atual. O Get-WinEvent
cmdlet obtém os objetos de log de eventos e usa o parâmetro LogName para especificar o nome do arquivo de log. Os objetos de log de eventos são enviados pelo pipeline para o ConvertTo-Csv
cmdlet. O ConvertTo-Csv
cmdlet converte os objetos de log de eventos em uma série de cadeias de caracteres CSV. O parâmetro UseCulture usa o separador de lista padrão da cultura atual como delimitador. O parâmetro NoTypeInformation remove o cabeçalho de informações #TYPE da saída CSV.
Parâmetros
-Delimiter
Especifica o delimitador para separar os valores de propriedade em cadeias de caracteres CSV. O padrão é uma vírgula (,
). Insira um caractere, como dois pontos (:
). Para especificar um ponto-e-vírgula (;
), coloque-o entre aspas simples.
Type: | Char |
Position: | 1 |
Default value: | comma (,) |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Especifica os objetos que são convertidos em cadeias de caracteres CSV. Insira uma variável que contém os objetos ou digite um comando ou uma expressão que obtém os objetos. Você também pode canalizar objetos para ConvertTo-CSV
o .
Type: | PSObject |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NoTypeInformation
Remove o cabeçalho de informações #TYPE da saída. Esse parâmetro se tornou o padrão no PowerShell 6.0 e está incluído para compatibilidade com versões anteriores.
Type: | SwitchParameter |
Aliases: | NTI |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseCulture
Usa o separador de lista para a cultura atual como o delimitador de item. Para localizar o separador de lista de uma cultura, use o seguinte comando: (Get-Culture).TextInfo.ListSeparator
.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Entradas
Você pode canalizar qualquer objeto que tenha um adaptador ETS (Extended Type System) para esse cmdlet.
Saídas
Esse cmdlet retorna uma ou mais cadeias de caracteres que representam cada objeto convertido.
Observações
No formato CSV, cada objeto é representado por uma lista separada por caracteres de seu valor de propriedade. Os valores de propriedade são convertidos em cadeias de caracteres usando o método ToString() do objeto. As cadeias de caracteres são representadas pelo nome do valor da propriedade. ConvertTo-CSV
não exporta os métodos do objeto.
As cadeias de caracteres CSV são saídas da seguinte maneira:
- Por padrão, a primeira cadeia de caracteres contém o cabeçalho de informações #TYPE seguido pelo nome totalmente qualificado do tipo de objeto. Por exemplo, #TYPE System.Diagnostics.Process.
- Se NoTypeInformation for usado, a primeira cadeia de caracteres incluirá os cabeçalhos de coluna. Os cabeçalhos contêm os nomes de propriedade do primeiro objeto como uma lista separada por vírgula.
- As cadeias de caracteres restantes contêm listas separadas por vírgulas dos valores de propriedade de cada objeto.
Quando você envia vários objetos para ConvertTo-CSV
o , ConvertTo-CSV
ordena as cadeias de caracteres com base nas propriedades do primeiro objeto enviado. Se os objetos restantes não tiverem uma das propriedades especificadas, o valor da propriedade desse objeto será Null, conforme representado por duas vírgulas consecutivas. Se os objetos restantes têm propriedades adicionais, esses valores das propriedades serão ignorados.