Compartilhar via


ConvertFrom-Csv

Converte propriedades de objeto no formato CSV (valor separado por caractere) em versões CSV dos objetos originais.

Syntax

ConvertFrom-Csv
                [[-Delimiter] <Char>]
                [-InputObject] <PSObject[]>
                [-Header <String[]>]
                [<CommonParameters>]
ConvertFrom-Csv
                -UseCulture
                [-InputObject] <PSObject[]>
                [-Header <String[]>]
                [<CommonParameters>]

Description

O ConvertFrom-Csv cmdlet converte dados de valor separado por caractere (CSV) em objetos do tipo PSObject para cada linha de dados CSV. Os novos objetos são gravados no pipeline na ordem em que são lidos a partir dos dados CSV. Os valores na linha de cabeçalho da coluna do CSV tornam-se os nomes das propriedades adicionadas a cada novo PSObject.

Os objetos que ConvertFrom-Csv cria são objeto do tipo PSObject para cada linha no arquivo CSV. Os valores de propriedade dos objetos CSV são versões em formato de cadeia de caracteres dos valores de propriedade dos objetos originais. As versões CSV dos objetos não têm métodos.

Você também pode usar os Export-Csv cmdlets e Import-Csv para converter objetos em cadeias de caracteres CSV em um arquivo e vice-versa. Esses cmdlets são os mesmos que os ConvertTo-Csv cmdlets e ConvertFrom-Csv , exceto que eles salvam as cadeias de caracteres CSV em um arquivo.

O tipo PSObject mantém a ordem das propriedades na ordem do cabeçalho da coluna. Isso significa que você obtém a mesma ordem de colunas quando converte os objetos de volta para o formato CSV.

Exemplos

Exemplo 1: Converter processos no computador local para o formato CSV

Este exemplo mostra como converter os processos no computador local em formato CSV e, em seguida, restaurá-los para o formulário de objeto.

$P = Get-Process | ConvertTo-Csv
$P | ConvertFrom-Csv

O Get-Process cmdlet envia os processos pelo pipeline para ConvertTo-Csv. O ConvertTo-Csv cmdlet converte os objetos de processo em uma série de cadeias de caracteres CSV. O ConvertFrom-Csv cmdlet converte as cadeias de caracteres CSV em versões CSV dos objetos de processo originais. As cadeias de caracteres CSV são salvas na $P variável.

Exemplo 2: Converter um objeto de dados no formato CSV e, em seguida, no formato de objeto CSV

Este exemplo mostra como converter um objeto de dados para o formato CSV e, em seguida, para o formato de objeto CSV.

$Date = Get-Date | ConvertTo-Csv -Delimiter ';'
ConvertFrom-Csv -InputObject $Date -Delimiter ';'

O primeiro comando usa Get-Date para enviar a data e hora atuais no pipeline para ConvertTo-Csv. O ConvertTo-Csv cmdlet converte o objeto de data em uma série de cadeias de caracteres CSV. O parâmetro Delimiter é usado para especificar um delimitador de ponto-e-vírgula. As cadeias de caracteres são salvas na $Date variável.

Exemplo 3: Usar o parâmetro header para alterar os nomes das propriedades

Este exemplo mostra como usar o parâmetro Header de ConvertFrom-Csv para alterar os nomes das propriedades no objeto importado resultante.

$J = Start-Job -ScriptBlock { Get-Process } | ConvertTo-Csv  -NoTypeInformation
$Header = 'State', 'MoreData', 'StatusMessage', 'Location', 'Command',
          'StateInfo', 'Finished', 'InstanceId', 'Id', 'Name', 'ChildJobs',
          'BeginTime', 'EndTime', 'JobType', 'Output', 'Error', 'Progress',
          'Verbose', 'Debug', 'Warning', 'Information'
# Delete the default header from $J
$J = $J[1..($J.count - 1)]
$J | ConvertFrom-Csv -Header $Header

State         : Running
MoreData      : True
StatusMessage :
Location      : localhost
Command       : Get-Process
StateInfo     : Running
Finished      : System.Threading.ManualResetEvent
InstanceId    : a259eb63-6824-4b97-a033-305108ae1c2e
Id            : 1
Name          : Job1
ChildJobs     : System.Collections.Generic.List`1[System.Management.Automation.Job]
BeginTime     : 12/20/2018 18:59:57
EndTime       :
JobType       : BackgroundJob
Output        : System.Management.Automation.PSDataCollection`1[System.Management.Automation.PSObject]
Error         : System.Management.Automation.PSDataCollection`1[System.Management.Automation.ErrorRecord]
Progress      : System.Management.Automation.PSDataCollection`1[System.Management.Automation.ProgressRecord]
Verbose       : System.Management.Automation.PSDataCollection`1[System.Management.Automation.VerboseRecord]
Debug         : System.Management.Automation.PSDataCollection`1[System.Management.Automation.DebugRecord]
Warning       : System.Management.Automation.PSDataCollection`1[System.Management.Automation.WarningRecord]
Information   : System.Management.Automation.PSDataCollection`1[System.Management.Automation.InformationRecord]

O Start-Job cmdlet inicia um trabalho em segundo plano que executa Get-Processo . Um objeto de trabalho é enviado pelo pipeline e ConvertTo-Csv convertido em uma cadeia de caracteres CSV. O parâmetro NoTypeInformation remove o cabeçalho de informações de tipo da saída CSV e é opcional no PowerShell v6 e superior. A $Header variável contém um cabeçalho personalizado que substitui os seguintes valores padrão: HasMoreData, JobStateInfo, PSBeginTime, PSEndTime e PSJobTypeName. A $J variável contém a cadeia de caracteres CSV e é usada para remover o cabeçalho padrão. O ConvertFrom-Csv cmdlet converte a cadeia de caracteres CSV em um PSCustomObject e usa o parâmetro Header para aplicar a $Header variável.

Exemplo 4: Converter cadeias de caracteres CSV de objetos de serviço

Este exemplo mostra como usar o ConvertFrom-Csv cmdlet com o parâmetro UseCulture .

(Get-Culture).TextInfo.ListSeparator
$Services = (Get-Service | ConvertTo-Csv)
ConvertFrom-Csv -InputObject $Services -UseCulture

O Get-Culture cmdlet usa as propriedades aninhadas TextInfo e ListSeparator para obter o separador de lista padrão da cultura atual. O Get-Service cmdlet envia objetos de serviço pelo pipeline para ConvertTo-Csv. O ConvertTo-Csv converte os objetos de serviço em uma série de cadeias de caracteres CSV. As cadeias de caracteres CSV são armazenadas na $Services variável. O ConvertFrom-Csv cmdlet usa o parâmetro InputObject e converte as cadeias de caracteres CSV da $Services variável. O parâmetro UseCulture usa o separador de lista padrão da cultura atual.

Quando o parâmetro UseCulture for usado, verifique se o separador de lista padrão da cultura atual corresponde ao delimitador usado nas cadeias de caracteres CSV. Caso contrário, ConvertFrom-Csv não será possível gerar objetos a partir das cadeias de caracteres CSV.

Parâmetros

-Delimiter

Especifica o delimitador que separa os valores de propriedade nas cadeias 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.

Se você especificar um caractere diferente do delimitador de cadeia de caracteres real no arquivo, ConvertFrom-Csv não poderá criar os objetos a partir das cadeias de caracteres CSV e retornará as cadeias de caracteres CSV.

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

-Header

Especifica uma linha de cabeçalho de coluna alternativo para a cadeia de caracteres importada. O cabeçalho da coluna determina os nomes de propriedade dos objetos criados pelo ConvertFrom-Csv.

Insira cabeçalhos de coluna como uma lista separada por caracteres. Não coloque a cadeia de caracteres de cabeçalho entre aspas. Coloque cada cabeçalho de coluna entre aspas simples.

Se você inserir menos cabeçalhos de coluna do que colunas de dados, as colunas de dados restantes serão descartadas. Se você inserir mais cabeçalhos de coluna do que colunas de dados, os cabeçalhos de coluna adicionais serão criados com colunas de dados vazias.

Ao usar o parâmetro Header , omita a cadeia de caracteres de cabeçalho de coluna das cadeias de caracteres CSV. Caso contrário, esse cmdlet criará um objeto extra a partir dos itens na linha de cabeçalho.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Especifica as cadeias de caracteres CSV a serem convertidas em objetos. Insira uma variável que contém as cadeias de caracteres CSV ou digite um comando ou expressão que obtém as cadeias CSV. Você também pode canalizar as cadeias de caracteres CSV para ConvertFrom-Csv.

Type:PSObject[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
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:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

Entradas

String

Você pode canalizar cadeias de caracteres CSV para esse cmdlet.

Saídas

PSObject

Esse cmdlet retorna os objetos descritos pelas propriedades nas cadeias de caracteres CSV.

Observações

No formato CSV, cada objeto é representado por uma lista separada por caracteres dos valores de propriedade do objeto. Os valores de propriedade são convertidos em cadeias de caracteres, usando o ToString() método do objeto. Não há como exportar os métodos do objeto.