Come scaricare un file in PowerShell

Come scaricare un file in PowerShell

Gli utenti possono scaricare file CSV da siti Web dove ci sono dati importanti, solitamente file di grandi dimensioni con informazioni statistiche. Ad esempio, il link accessibile pubblicamente qui sotto ti permetterebbe di scaricare il file CSV del Rapporto annuale delle imprese - 2021 del Governo della Nuova Zelanda. Useremo il seguente URL del file CSV in questo articolo per dimostrare come eseguire una funzione simile attraverso i comandi di 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

Windows PowerShell è una soluzione di scripting, che funziona su istruzioni della riga di comando per fornire flessibilità simile ai sistemi basati su riga di comando simili a Unix per gli utenti di Windows. Inoltre, una versione di PowerShell è disponibile per gli utenti Mac (L’uso dei comandi sarebbe leggermente diverso rispetto a Windows).

In un normale browser web, l’URL scarica direttamente il file CSV nella cartella di downloads specificata dall’utente, senza alcun problema. Quando provi a scaricare lo stesso CSV in PowerShell, sono richiesti determinati comandi.

Scarica un File Tramite Windows PowerShell

Il comando base che può essere utilizzato per scaricare un file tramite Windows PowerShell è Invoke-WebRequest.

Attraverso questo comando, una richiesta web PowerShell avvia una richiesta web. Poi viene fornito l’URL richiesto.

L’importante da notare qui è la necessità di un file di output per salvare i dati recuperati dalla richiesta web. Dovresti prima creare un file del tipo del file dal quale intendi scaricare i dati. Come nostro requisito, creiamo un file di tipo .csv per salvare i dati passati tramite la richiesta web dall’URL sopra.

È necessario tenere presente che non solo i CSV, ma anche altri tipi di file possono essere scaricati in questo modo.

Utilizzo di Invoke-WebRequest per Scaricare un File CSV in PowerShell

Poi Invoke-WebRequest può essere utilizzato nel modo seguente.

Invoke-WebRequest URL -OutFile File_path

Qui, -OutFile sarebbe il file in cui salvare i dati dal file CSV online.

Di seguito mostra l’esecuzione completa con il nostro URL di esempio.

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

Come output in PowerShell vedresti lo script sottostante in esecuzione fino al completamento dell’azione.

Writing web request                                                                                                
Writing request stream... (Number of bytes written: 33451654)

L’output dell’esecuzione sopra è simile al file che scaricheresti direttamente.

Tuttavia, ci sono vincoli all’uso di Invoke-WebRequest. Quando il sito web richiede una semplice autenticazione basata su password, è necessario includere i propri dati di accesso e Invoke-WebRequest.

Invoke-WebRequest URL -Add your lgin information- -SessionVariable MyNewSession

Vedrai lo script sottostante in esecuzione quando esegui il flusso sopra fino al completamento del download.

Writing web request                                                                                                Writing request stream... (Number of bytes written: 1474178)

Poi verrà creata una sessione web per te e verrà scaricato il file richiesto. Sarà in formato .cs, che puoi cambiare in formato .csv per renderlo utilizzabile con qualsiasi applicazione leggibile in .csv.

Ma se il tuo sito web richiede l’autenticazione a due fattori, o altri sistemi di autenticazione a più fattori, avviare la sessione web come indicato qui sarebbe difficile. Pertanto, è consigliabile utilizzare un link personale (link cloud personale - accesso privato) per scaricare il file tramite PowerShell.

Pertanto, puoi facilmente scaricare il CSV o altri tipi di file tramite PowerShell tramite questi comandi sopra. Come spiegato, sarebbe o a un file di output fornito, che sarebbe facile da usare, dato che viene preso in considerazione il formato corretto, o scaricare il file e convertirlo in un formato leggibile.

Ti piacciono i nostri tutorial? Iscriviti a DelftStack su YouTube per aiutarci a creare altre guide video di alta qualità. Iscriviti
Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

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.