Como Baixar Arquivo no PowerShell

Usuários podem baixar arquivos CSV de websites onde existem dados importantes, geralmente arquivos grandes com informações estatísticas. Por exemplo, o link disponível publicamente abaixo permitiria que você baixasse o arquivo CSV da Pesquisa Anual de Empresas - 2021 do Governo da Nova Zelândia. Usaremos a seguinte URL de arquivo CSV neste artigo para demonstrar como fazer uma função semelhante através de comandos do Windows PowerShell.
https://www.stats.govt.nz/assets/Uploads/Annual-enterprise-survey/Annual-enterprise-survey-2020-financial-year-provisional/Download-data/annual-enterprise-survey-2020-financial-year-provisional-csv.csv
O Windows PowerShell é uma solução de script, executando instruções de linha de comando para fornecer flexibilidade semelhante a sistemas baseados em linha de comando do tipo Unix para usuários do Windows. Além disso, uma versão do PowerShell está disponível para usuários de Mac (o uso de comandos seria ligeiramente diferente do Windows).
Em um navegador web normal, a URL baixa diretamente o arquivo CSV para a pasta de downloads especificada pelo usuário, sem problemas. Quando você tenta baixar o mesmo CSV no PowerShell, certos comandos são necessários.
Baixar um Arquivo Através do Windows PowerShell
O comando básico que pode ser usado para baixar um arquivo através do Windows PowerShell é Invoke-WebRequest
.
Através desse comando, uma requisição web PowerShell inicia uma requisição web. Então, a URL necessária é fornecida.
A importante questão a notar aqui é a necessidade de um arquivo de saída para salvar os dados recuperados da requisição web. Você deve primeiro criar um arquivo do tipo do arquivo do qual pretende baixar dados. De acordo com nossa necessidade, criamos um arquivo do tipo .csv para salvar os dados passados pela requisição web da URL acima.
É necessário ter em mente que não só CSV, mas outros tipos de arquivos também podem ser baixados dessa maneira.
Usando Invoke-WebRequest
para Baixar um Arquivo CSV no PowerShell
Então, o Invoke-WebRequest
pode ser usado da seguinte maneira.
Invoke-WebRequest URL -OutFile File_path
Aqui, -OutFile
seria o arquivo para salvar dados do arquivo CSV online.
Abaixo mostra a execução completa com nossa URL de exemplo.
Invoke-WebRequest https://www.stats.govt.nz/assets/Uploads/Annual-enterprise-survey/Annual-enterprise-survey-2020-financial-year-provisional/Download-data/annual-enterprise-survey-2020-financial-year-provisional-csv.csv -OutFile .\SaveCSV.csv
Como saída no PowerShell, você veria o script abaixo em execução até a ação ser concluída.
Writing web request
Writing request stream... (Number of bytes written: 33451654)
A saída da execução acima é semelhante ao arquivo que você baixaria diretamente.
No entanto, há restrições ao usar este Invoke-WebRequest
. Quando o site requer autenticação simples baseada em senha, é necessário incluir seus dados de login e o Invoke-WebRequest
.
Invoke-WebRequest URL -Add your lgin information- -SessionVariable MyNewSession
Você verá o script abaixo em execução ao executar o fluxo acima até que o download seja concluído.
Writing web request Writing request stream... (Number of bytes written: 1474178)
Então, ele criaria uma sessão web para você e baixaria o arquivo necessário. Ele estaria em formato .cs, que você pode mudar para o formato .csv para torná-lo utilizável com qualquer aplicativo que leia .csv.
Mas se seu site requer autenticação de dois fatores, ou qualquer outro sistema de autenticação multifatorial, iniciar a sessão web como indicado aqui seria problemático. Portanto, é aconselhável usar um link pessoal (link de nuvem pessoal - acesso privado) para baixar o arquivo através do PowerShell.
Portanto, você pode facilmente baixar o CSV ou outros tipos de arquivos através do PowerShell com esses comandos acima. Como explicado, seria para um arquivo de saída que você forneceu, que seria fácil de usar, dado que o formato correto é considerado, ou baixar o arquivo e convertê-lo para um formato legível.
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.