Como Importar Arquivos CSV Para um Array no PowerShell
- O Arquivo de Valores Separados por Vírgulas
-
Use o Cmdlet
Import-CSV
para Importar Arquivos CSV em um Array no PowerShell -
Use os Cmdlets
Get-Content
eConvertFrom-Csv
para Importar Arquivos CSV em um Array no PowerShell -
Use a Classe
System.IO.File
e o CmdletConvertFrom-Csv
para Importar Arquivos CSV em um Array no PowerShell - Conclusão

Os arquivos CSV (Valores Separados por Vírgulas) servem como um formato de dados fundamental, encapsulando informações em uma estrutura tabular com campos separados por vírgulas. Embora comumente associados a softwares de planilhas, sua natureza simples, mas versátil, encontra aplicação em várias plataformas, incluindo o PowerShell.
Na scriptagem do PowerShell, ler e processar dados CSV de forma eficiente é crucial para tarefas de automação e manipulação de dados. Este artigo explora três métodos—Import-CSV
, Get-Content
cmdlets e a classe System.IO.File
com o cmdlet ConvertFrom-Csv
—para importar arquivos CSV em arrays, oferecendo insights sobre seu uso, vantagens e cenários de aplicação.
O Arquivo de Valores Separados por Vírgulas
Um arquivo CSV (Valores Separados por Vírgulas) contém dados ou conjuntos separados por vírgulas. Isso permite que os dados sejam salvos em um formato tabular.
Os usuários podem utilizar arquivos CSV com a maioria dos programas de planilhas, como Microsoft Excel ou Google Planilhas. No entanto, quando os abrimos em softwares que não atendem a formatos tabulares, os dados estarão separados por vírgulas, que o PowerShell pode usar para separar valores em arrays.
Por exemplo, abaixo está um formato CSV bruto com duas colunas.
Arquivo users.csv
:
Name,Salary
John,1000
Paul,2000
Mary,1500
Matt,3000
Use o Cmdlet Import-CSV
para Importar Arquivos CSV em um Array no PowerShell
O comando Import-CSV
no Windows PowerShell cria um objeto tipo tabela semelhante a objetos personalizados a partir dos itens apresentados no arquivo CSV acima.
No script do Windows PowerShell abaixo, usaremos o comando Import-CSV
para atribuir os dados do arquivo CSV a uma variável do tipo array do Windows PowerShell.
$users = Import-Csv path\users.csv
$users
Começamos usando o cmdlet Import-Csv
para ler os dados de um arquivo CSV localizado em path\users.csv
. Este cmdlet lê o conteúdo do arquivo CSV e o converte em um objeto PowerShell.
Em seguida, atribuímos os dados importados do CSV à variável $users
. Esta variável agora contém o conteúdo do arquivo CSV como um array de objetos, com cada objeto representando uma linha do arquivo CSV.
Uma vez executado, podemos ver os valores do arquivo CSV transformados em uma lista de formato chamada objeto ArrayList
.
Saída:
Acessar Elementos Após Importar Arquivos CSV em um Array no PowerShell
Quando importamos um arquivo CSV usando Import-Csv
no PowerShell, cada linha do arquivo CSV é representada como um objeto, e todo o dado CSV é armazenado como um array desses objetos. Para acessar linhas individuais ou elementos dentro dos dados CSV, usamos a indexação de arrays.
$users = Import-Csv path\users.csv
$users[0]
Começamos importando um arquivo CSV chamado users.csv
localizado no caminho especificado. Usamos o cmdlet Import-Csv
para esse propósito.
Esse cmdlet lê o conteúdo do arquivo CSV e o converte em um objeto PowerShell.
Após importar o arquivo CSV, queremos acessar a primeira linha dos dados CSV. Conseguimos isso usando a indexação de arrays.
No PowerShell, a indexação de arrays começa em 0, então $users[0]
refere-se ao primeiro elemento (ou linha) no array $users
.
Saída:
Podemos consultar a propriedade de um determinado elemento do array do Windows PowerShell tratando o nome da coluna como um nome de propriedade, como no exemplo abaixo.
$users = Import-Csv path/users.csv
$users[0].Name
Depois de importar o arquivo CSV e armazenar seu conteúdo na variável $users
, prosseguimos para acessar uma propriedade específica da primeira linha dos dados CSV. Neste caso, queremos recuperar o valor da propriedade Name
da primeira linha.
Ao especificar $users[0].Name
, estamos acessando a propriedade Name
do objeto que representa a primeira linha dos dados CSV. Isso nos permite recuperar o valor associado à coluna Name
no arquivo CSV para a primeira linha.
Saída:
Podemos contar o número de elementos em um array usando a propriedade Count
abaixo.
$users = Import-Csv path/users.csv
$users.Count
Após importar o arquivo CSV e armazenar seu conteúdo na variável $users
, queremos determinar o número de itens (linhas) no array.
Ao usar $users.Count
, estamos acessando a propriedade Count
do array armazenado na variável $users
. Esta propriedade retorna o número de itens (linhas) no array.
Saída:
Use os Cmdlets Get-Content
e ConvertFrom-Csv
para Importar Arquivos CSV em um Array no PowerShell
Uma abordagem direta para realizar essa tarefa é usar os cmdlets Get-Content
e ConvertFrom-Csv
. Este método nos permite ler o conteúdo de um arquivo CSV como texto usando Get-Content
e, em seguida, convertê-lo em objetos PowerShell usando ConvertFrom-Csv
, criando assim um array de objetos representando cada linha dos dados CSV.
$content = Get-Content -Path "C:\path\data.csv"
$array = $content | ConvertFrom-Csv
$array
Começamos usando Get-Content
para ler o conteúdo do arquivo CSV localizado no caminho especificado e armazená-lo na variável $content
.
Em seguida, enviamos o conteúdo do arquivo CSV armazenado em $content
para ConvertFrom-Csv
. Este cmdlet converte o texto CSV em objetos PowerShell e os armazena na variável $array
.
Uma vez executado, podemos ver os valores do arquivo CSV transformados em uma lista de formato chamada objeto ArrayList
.
Saída:
Use a Classe System.IO.File
e o Cmdlet ConvertFrom-Csv
para Importar Arquivos CSV em um Array no PowerShell
A classe System.IO.File
permite a leitura dos conteúdos do arquivo CSV, que são então transformados em objetos PowerShell usando o cmdlet ConvertFrom-Csv
. Este método não apenas fornece flexibilidade, mas também garante facilidade de uso, permitindo que os usuários gerenciem dados CSV de maneira simples em seus scripts do PowerShell.
$content = [System.IO.File]::ReadAllText("C:\path\data.csv")
$array = $content | ConvertFrom-Csv
$array
Usamos [System.IO.File]::ReadAllText
para ler o conteúdo do arquivo CSV localizado no caminho especificado e armazená-lo na variável $content
.
Em seguida, enviamos o conteúdo do arquivo CSV armazenado em $content
para ConvertFrom-Csv
. Este cmdlet converte o texto CSV em objetos PowerShell e os armazena na variável $array
.
Uma vez executado, podemos ver os valores do arquivo CSV transformados em uma lista de formato chamada objeto ArrayList
.
Saída:
Conclusão
Na scriptagem do PowerShell, lidar com dados CSV de forma integrada é imperativo para uma automação e processamento de dados eficazes. Ao aproveitar os cmdlets Import-CSV
, Get-Content
ou a classe System.IO.File
com o cmdlet ConvertFrom-Csv
, os usuários podem ler eficientemente arquivos CSV em arrays, capacitando-os a manipular dados com facilidade e flexibilidade.
Seja extraindo insights de grandes conjuntos de dados ou automatizando tarefas repetitivas, esses métodos fornecem ferramentas poderosas para desenvolvedores do PowerShell. Com uma clara compreensão dessas técnicas, os usuários podem aproveitar o poder dos dados CSV dentro de seus scripts, simplificando fluxos de trabalho e aumentando a produtividade.
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedInArtigo relacionado - PowerShell Array
- Array de Bytes no PowerShell
- Array de Strings em PowerShell
- Arrays Multidimensionais do PowerShell
- Como Adicionar Objetos a um Array de Objetos no PowerShell
- Como Converter um Objeto de Array em uma String no PowerShell
- Como Criar um Array Vazio de Arrays no PowerShell