Comment télécharger un fichier dans PowerShell

Comment télécharger un fichier dans PowerShell

Les utilisateurs peuvent télécharger des fichiers CSV depuis des sites Web où se trouvent des données importantes, généralement de gros fichiers avec des informations statistiques. Par exemple, le lien public disponible ci-dessous vous permettrait de télécharger le fichier CSV de l’Enquête annuelle sur les entreprises - 2021 par le Gouvernement de Nouvelle-Zélande. Nous utiliserons l’URL du fichier CSV suivant dans cet article pour démontrer comment effectuer une fonction similaire via les commandes 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 est une solution de script, fonctionnant sur des instructions en ligne de commande pour offrir une flexibilité similaire aux systèmes basés sur des lignes de commande de type Unix pour les utilisateurs de Windows. De plus, une version de PowerShell est disponible pour les utilisateurs de Mac (l’utilisation des commandes serait légèrement différente de celle de Windows).

Dans un navigateur Web normal, l’URL télécharge directement le fichier CSV dans le dossier de téléchargements spécifié par l’utilisateur, sans aucun problème. Lorsque vous essayez de télécharger le même CSV dans PowerShell, certaines commandes sont nécessaires.

Télécharger un fichier via Windows PowerShell

La commande de base qui peut être utilisée pour télécharger un fichier via Windows PowerShell est Invoke-WebRequest.

Grâce à cette commande, une requête Web PowerShell initie une requête Web. Ensuite, l’URL requise est fournie.

L’important à noter ici est la nécessité d’un fichier de sortie pour sauvegarder les données récupérées de la requête Web. Vous devez d’abord créer un fichier de type correspondant au type de fichier à partir duquel vous souhaitez télécharger des données. Comme notre exigence, nous créons un fichier de type .csv pour sauvegarder les données passées via la requête Web à partir de l’URL ci-dessus.

Il est nécessaire de garder à l’esprit que non seulement les fichiers CSV, mais d’autres types de fichiers peuvent également être téléchargés de cette manière.

Utiliser Invoke-WebRequest pour télécharger un fichier CSV dans PowerShell

Ensuite, Invoke-WebRequest peut être utilisé de la manière suivante.

Invoke-WebRequest URL -OutFile File_path

Ici, -OutFile serait le fichier pour sauvegarder les données provenant du fichier CSV en ligne.

Ci-dessous montre l’exécution complète avec notre URL exemple.

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

En tant que sortie dans PowerShell, vous verriez le script ci-dessous s’exécuter jusqu’à ce que l’action soit terminée.

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

La sortie de l’exécution ci-dessus est similaire au fichier que vous téléchargeriez directement.

Cependant, il existe des contraintes à l’utilisation de Invoke-WebRequest. Lorsque le site Web nécessite une authentification simple par mot de passe, il est nécessaire d’inclure vos identifiants de connexion dans Invoke-WebRequest.

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

Vous verrez le script ci-dessous s’exécuter lorsque vous exécuterez le flux ci-dessus jusqu’à ce que le téléchargement soit terminé.

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

Ensuite, il créerait une session Web pour vous et téléchargerait le fichier requis. Il serait au format .cs, que vous pouvez changer en format .csv pour le rendre utilisable avec toute application lisible .csv.

Mais si votre site Web nécessite une authentification à deux facteurs, ou tout autre système d’authentification multifactorielle, initier la session Web comme indiqué ici serait problématique. Par conséquent, il est conseillé d’utiliser un lien personnel (lien de cloud personnel - accès privé) pour télécharger le fichier via PowerShell.

Ainsi, vous pouvez facilement télécharger le CSV ou d’autres types de fichiers via PowerShell grâce à ces commandes ci-dessus. Comme expliqué, cela serait soit vers un fichier de sortie que vous avez fourni, ce qui serait facile à utiliser, étant donné que le bon format est considéré, soit télécharger le fichier et le convertir en un format lisible.

Vous aimez nos tutoriels ? Abonnez-vous à DelftStack sur YouTube pour nous aider à créer davantage de tutoriels vidéo de haute qualité. Abonnez-vous
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.