ConvertFrom-Csv

Converte as propriedades de objeto, do formato de valores separados por vírgulas (CSV), 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>]
ConvertFrom-Csv
                -UseCulture
                [-InputObject] <PSObject[]>
                [-Header <String[]>]
                [<CommonParameters>]

Description

O ConvertFrom-Csv cmdlet cria objetos de cadeias de caracteres de comprimento variável CSV geradas pelo ConvertTo-Csv cmdlet .

Você pode usar os parâmetros desse cmdlet para especificar a linha de cabeçalho de coluna, que determina os nomes de propriedade dos objetos resultantes, para especificar o delimitador de item ou para direcionar esse cmdlet para usar o separador de lista para a cultura atual como delimitador.

Os objetos que ConvertFrom-Csv criam são versões CSV dos objetos originais. 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 nenhum método.

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

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 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 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 para o pipeline para ConvertTo-Csv. O ConvertTo-Csv cmdlet converte o objeto date em uma série de cadeias de caracteres CSV. O parâmetro Delimitador é 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 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 Start-Job cmdlet 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 Core. 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 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 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 por ConvertFrom-Csv.

Insira cabeçalhos de coluna como uma lista separada por vírgulas. Não coloque a cadeia de caracteres do 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.

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 redirecionar 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 delimitador de item. Para localizar o separador de lista para 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 redirecionar 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

Como os objetos importados são versões CSV do tipo de objeto, eles não são reconhecidos e formatados pelas entradas de formatação de tipo do PowerShell que formatizam as versões não CSV do tipo de objeto.

No formato CSV, cada objeto é representado por uma lista dos valores de propriedade do objeto separados por vírgulas. Os valores de propriedade são convertidos em cadeias de caracteres (usando o método ToString() do objeto , para que sejam representados pelo nome do valor da propriedade. Esse cmdlet não exporta os métodos do objeto .