ConvertFrom-Csv
Converte propriedades de objeto no formato CSV (valor separado por caractere) em versões CSV dos objetos originais.
Syntax
ConvertFrom-Csv
[-InputObject] <psobject[]>
[[-Delimiter] <char>]
[-Header <string[]>]
[<CommonParameters>]
ConvertFrom-Csv
[-InputObject] <psobject[]>
-UseCulture
[-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-Process
o . 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
Você pode canalizar cadeias de caracteres CSV para esse cmdlet.
Saídas
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.