ConvertFrom-Csv
Converte as propriedades do objeto no formato CSV (valor separado por vírgula) em versões CSV dos objetos originais.
Sintaxe
Delimiter (Default)
ConvertFrom-Csv
[[-Delimiter] <Char>]
[-InputObject] <PSObject[]>
[-Header <String[]>]
[<CommonParameters>]
UseCulture
ConvertFrom-Csv
[-InputObject] <PSObject[]>
-UseCulture
[-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 da 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 o delimitador.
Os objetos criados ConvertFrom-Csv são versões CSV dos objetos originais. 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 nenhum método.
Você também pode usar os Export-Csv cmdlets and Import-Csv para converter objetos em cadeias de caracteres CSV em um arquivo (e vice-versa). Esses cmdlets são iguais aos cmdlets ConvertTo-Csv 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 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 é 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 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 será possível criar os objetos a partir das cadeias de caracteres CSV e retornará as cadeias de caracteres CSV.
Propriedades do parâmetro
| Tipo: | Char |
| Valor padrão: | comma (,) |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
Delimiter
| Cargo: | 1 |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | 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 os cabeçalhos das colunas como uma lista separada por vírgulas. 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.
Propriedades do parâmetro
| Tipo: | String[] |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | 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.
Propriedades do parâmetro
| Tipo: | PSObject[] |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | 0 |
| Obrigatório: | True |
| Valor do pipeline: | True |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | 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.
Propriedades do parâmetro
| Tipo: | SwitchParameter |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
UseCulture
| Cargo: | Named |
| Obrigatório: | True |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
CommonParameters
Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.
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
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 formatam as versões não CSV do tipo de objeto.
No formato CSV, cada objeto é representado por uma lista separada por vírgulas dos valores de propriedade do objeto. Os valores de propriedade são convertidos em strings (usando o método ToString() do objeto), portanto, são representados pelo nome do valor da propriedade. Esse cmdlet não exporta os métodos do objeto.