ConvertFrom-CSV
Converte propriedades de objeto de um formato de valores separados por vírgula (CSV) em versões CSV dos objetos originais.
Sintaxe
ConvertFrom-CSV [[-Delimitador] <char>] [-InputObject] <PSObject[]> [-Header <string[]>] [<CommonParameters>]
ConvertFrom-CSV -UseCulture [-InputObject] <PSObject[]> [-Header <string[]>] [<CommonParameters>]
Descrição
O cmdlet ConvertFrom-CSV cria objetos de cadeias de caracteres CSV de tamanho variável gerados pelo cmdlet ConvertTo-CSV.
É possível usar os parâmetros do cmdlet ConvertFrom-CSV para especificar a linha do cabeçalho da coluna que determina os nomes de propriedade dos objetos resultantes para especificar o delimitador do item, ou para direcionar o ConvertFrom-CSV para usar o separador de lista da cultura atual como o delimitador.
Os objetos que o ConvertFrom-CSV cria são versões CSV dos objetos originais. Os valores das propriedades dos objetos CSV são versões de cadeia de caracteres dos valores das propriedades dos objetos originais. As versões CSV dos objetos não têm nenhum método.
Também é possível usar os cmdlets do Export-CSV e 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 eles salvam as cadeias de caracteres CSV em um arquivo.
Parâmetros
-Delimitador <char>
Especifica o delimitador que separa os valores de propriedade nas cadeias de caracteres CSV. O padrão é uma vírgula (,). Digite um caractere, como dois pontos (:). Para especificar um ponto-e-vírgula (;), coloque-o entre aspas.
Se você especificar um caractere diferente do delimitador usado nas cadeias de caracteres CSV, ConvertFrom-CSV não poderá criar objetos a partir das cadeias de caracteres CSV. Em vez disso, ele retornará as cadeias de caracteres.
Necessário? |
false |
Posição? |
2 |
Valor padrão |
',' |
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-Header <string[]>
Especifica uma linha de cabeçalho de coluna alternativa para a cadeia de caracteres importada. O cabeçalho da coluna determina os nomes das propriedades do objeto criados pelo ConvertFrom-CSV cria.
Digite uma lista de cabeçalhos de coluna separados por vírgula. Coloque cada item entre aspas (simples ou duplas). Não coloque a cadeia de caracteres do cabeçalho entre aspas. Se você inserir menos cabeçalhos de coluna do que o número de colunas, as colunas restantes não terão cabeçalhos. Se você inserir mais cabeçalhos do que o número de colunas, os cabeçalhos extras serão ignorados.
Ao usar o parâmetro Header, omita a cadeia de caracteres de cabeçalho de coluna das cadeias de caracteres CSV. Caso contrário, ConvertFrom-CSV criará um objeto adicional a partir dos itens da linha de cabeçalho.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-InputObject <PSObject[]>
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 obtenha as cadeias de caracteres CSV. Também é possível canalizar cadeias de caracteres CSV para o ConvertFrom-CSV.
Necessário? |
true |
Posição? |
1 |
Valor padrão |
|
Aceitar entrada do pipeline? |
true (ByValue, ByPropertyName) |
Aceitar caracteres curinga? |
false |
-UseCulture
Use o separador de lista da cultura atual como o delimitador de cadeia de caracteres. O padrão é uma vírgula (,).
Para localizar o separador de lista de uma cultura, use o comando a seguir: (Get-Culture).TextInfo.ListSeparator. Se você especificar um caractere diferente do delimitador usado nas cadeias de caracteres CSV, ConvertFrom-CSV não poderá criar objetos a partir das cadeias de caracteres CSV. Em vez disso, ele retornará as cadeias de caracteres.
Necessário? |
true |
Posição? |
named |
Valor padrão |
Vírgula |
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
<CommonParameters>
Esse cmdlet oferece suporte aos parâmetros comuns: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Para obter mais informações, consulte about_Commonparameters.
Entradas e saídas
O tipo de entrada é o tipo dos objetos que você pode canalizar para o cmdlet. O tipo de retorno é o tipo dos objetos que o cmdlet retorna.
Entradas |
System.String É possível canalizar cadeias de caracteres CSV para o ConvertFrom-CSV. |
Saídas |
System.Management.Automation.PSObject ConvertFrom-CSV retorna os objetos descritos pelas propriedades nas cadeias de caracteres CSV. |
Observações
Como os objetos importados são versões CSV do tipo do objeto, eles não são reconhecidos e formatados pelas entradas de formatação de tipo do Windows 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 cadeias de caracteres (usando o método ToString() do objeto), de forma que eles geralmente são representados pelo nome do valor da propriedade. O ConvertTo-CSV não exporta os métodos do objeto.
Exemplo 1
C:\PS>$p = get-process | convertto-csv
C:\PS> $p | convertfrom-csv
Descrição
-----------
Esses comandos convertem os processos no computador local em formato CSV e, em seguida, os restauram para o formato do objeto.
O primeiro comando usa o cmdlet Get-Process para obter os processos no computador local. Um operador de pipeline (|) os envia para o cmdlet ConvertTo-CSV que converte o objeto de processo no formato CSV. As cadeias de caracteres CSV são salvas na variável $p.
O segundo comando usa um operador de pipeline para enviar as cadeias de caracteres CSV da variável $p para o cmdlet ConvertFrom-CSV. O cmdlet converte as cadeias de caracteres CSV em versões CSV dos objetos de processo originais.
Exemplo 2
C:\PS>$date = get-date | convertto-csv -delimiter ";"
C:\PS> convertfrom-csv -inputobject $date -delimiter ";"
Descrição
-----------
Esses comandos convertem um objeto de dados para o formato CSV e, em seguida, para o formato CSV do objeto.
O primeiro comando usa o cmdlet Get-Date para obter a data e a hora atuais. Um objeto pipeline (|) envia a data aos cmdlets de ConvertTo-CSV que convertem o objeto de data em uma série de cadeias de caracteres CSV. O comando usa o parâmetro Delimiter para especificar um delimitador de ponto-e-vírgula. As cadeias de caracteres são salvas na variável $date.
O segundo comando usa o cmdlet ConvertFrom-CSV para converter as cadeias de caracteres CSV na variável $date de volta para o formato do objeto. O comando usa o parâmetro InputObject para especificar as cadeias de caracteres CSV e o parâmetro Delimiter para especificar o delimitador de ponto-e-vírgula.
Exemplo 3
C:\PS>$j = start-job -scriptblock { get-process } | convertto-csv
C:\PS> $header = "MoreData","StatusMessage","Location","Command","State","Finished","InstanceId","SessionId","Name","ChildJobs","Output","Error","Progress","Verbose","Debug","Warning","StateChanged"
# Delete header from $j
C:\PS> $j = $j[0], $j[2..($j.count - 1)]
$j | convertfrom-csv -header $header
MoreData : True
StatusMessage :
Location : localhost
Command : get-process
State : Running
Finished : System.Threading.ManualResetEvent
InstanceId : 6fcb6578-7f42-4d93-9f23-9937f6aac1a2
SessionId : 1
Name : Job1
ChildJobs : System.Collections.Generic.List`1[System.Management.Automation.Job]
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.String]
Debug : System.Management.Automation.PSDataCollection`1[System.String]
Warning : System.Management.Automation.PSDataCollection`1[System.String]
StateChanged :
Descrição
-----------
Este exemplo mostra como usar o parâmetro Header de ConvertFrom-Csv para alterar os nomes de propriedades no objeto importado resultante.
O primeiro comando usa o cmdlet Start-Job para iniciar um trabalho em segundo plano que executa um comando Get-Process no computador local. Um operador de pipeline (|) envia o objeto de trabalho resultante para o cmdlet ConvertTo-CSV que converte o objeto de trabalho no formato CSV. Um operador de atribuição (=) salva o CSV resultante na variável $j.
O segundo comando salva um cabeçalho na variável $header. Ao contrário do cabeçalho padrão, esse cabeçalho usa "MoreData" em vez de "HasMoreData" e "State" em vez de "JobStateInfo".
O terceiro comando exclui o cabeçalho original (a segunda linha) das cadeias de caracteres CSV e o retorna para a variável $j.
O quarto comando usa o cmdlet ConvertFrom-CSV para converter as cadeias de caracteres CSV em uma versão CSV do objeto de trabalho. O comando segundo usa um operador de pipeline (|) para enviar o conteúdo de $j para ConvertFrom-CSV. O objeto resultante tem as propriedades "MoreData" e "State", conforme especificado pelo cabeçalho.
Exemplo 4
C:\PS>(get-culture).textinfo.listseparator
C:\PS> ConvertFrom-Csv -inputobject $services -UseCulture
Descrição
-----------
O comando usa o cmdlet ConvertFrom-CSV para converter cadeias de caracteres CSV de objetos de serviço que foram convertidos pelo cmdlet ConvertTo-CSV. O comando usa o parâmetro UseCulture para direcionar ConvertFrom-CSV para usar o delimitador (separador de lista) da cultura atual.
Ao usar o parâmetro UseCulture, verifique se o separador de lista 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.
Neste exemplo, um comando Get-Culture foi usado para verificar o separador de lista antes do comando ConvertFrom-CSV ser usado.