Compartilhar via


ConvertFrom-Csv

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

Sintaxe

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

Description

O cmdlet ConvertFrom-Csv converte dados CSV (valor separado por caractere) em objetos de tipo PSObject para cada linha de dados CSV. Os novos objetos são gravados no pipeline na ordem em que são lidos 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 de tipo PSObject para cada linha no arquivo CSV. Os valores de propriedade dos objetos CSV são versões 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 cmdlets Export-Csv e Import-Csv para converter objetos em cadeias de caracteres CSV em um arquivo e voltar. Esses cmdlets são iguais aos cmdlets ConvertTo-Csv e ConvertFrom-Csv, exceto que salvam as cadeias de caracteres CSV em um arquivo.

O tipo de PSObject mantém a ordem das propriedades na ordem do cabeçalho da coluna. Isso significa que você obtém a mesma ordem de coluna ao converter os objetos de volta no formato CSV.

Exemplos

Exemplo 1: converter processos no computador local em formato CSV

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

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

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

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

Este exemplo mostra como converter um objeto de dados em formato CSV e, em seguida, em 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 a hora atuais do pipeline para ConvertTo-Csv. O cmdlet ConvertTo-Csv converte o objeto date em uma série de cadeias de caracteres CSV. O parâmetro delimitador de é usado para especificar um delimitador de ponto e vírgula. As cadeias de caracteres são salvas na variável $Date.

Exemplo 3: Usar o parâmetro de cabeçalho 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 cmdlet Start-Job inicia um trabalho em segundo plano que executa Get-Process. Um objeto de trabalho é enviado pelo pipeline para ConvertTo-Csv e 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 variável $Header contém um cabeçalho personalizado que substitui os seguintes valores padrão: HasMoreData, JobStateInfo, PSBeginTime, PSEndTime e PSJobTypeName. A variável $J contém a cadeia de caracteres CSV e é usada para remover o cabeçalho padrão. O cmdlet ConvertFrom-Csv converte a cadeia de caracteres CSV em um PSCustomObject e usa o parâmetro cabeçalho para aplicar a variável $Header.

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

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

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

O cmdlet Get-Culture usa as propriedades aninhadas TextInfo e ListSeparator para obter o separador de lista padrão da cultura atual. O cmdlet Get-Service 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 variável $Services. O cmdlet ConvertFrom-Csv usa o parâmetro InputObject e converte as cadeias de caracteres CSV da variável $Services. 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 poderá gerar objetos das cadeias de caracteres CSV.

Parâmetros

-Delimiter

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

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

Tipo:Char
Cargo:1
Valor padrão:comma (,)
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Header

Especifica uma linha de cabeçalho de coluna alternativa para a cadeia de caracteres importada. O cabeçalho da coluna determina os nomes de propriedade dos objetos criados por 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 com base nos itens na linha de cabeçalho.

Tipo:String[]
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-InputObject

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

Tipo:PSObject[]
Cargo:0
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-UseCulture

Usa o separador de lista para a cultura atual como delimitador de item. Para localizar o separador de lista para uma cultura, use o seguinte comando: (Get-Culture).TextInfo.ListSeparator.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

Entradas

String

Você pode redirecionar cadeias de caracteres CSV para este 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 da propriedade são convertidos em cadeias de caracteres, usando o método ToString() do objeto. Não há como exportar os métodos do objeto.