Fichier de téléchargement PowerShell

Migel Hewage Nimesha 6 février 2023
Fichier de téléchargement PowerShell

Les utilisateurs peuvent télécharger des fichiers CSV à partir de sites Web contenant des données importantes, généralement de gros fichiers contenant des informations statistiques. Par exemple, le lien accessible au public ci-dessous vous permettrait de télécharger le fichier CSV de l’enquête annuelle sur les entreprises - 2021 par le gouvernement de la Nouvelle-Zélande. Nous utiliserons l’URL de fichier CSV suivante dans cet article pour 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, s’exécutant sur des instructions de ligne de commande pour offrir aux utilisateurs Windows une flexibilité similaire à celle des systèmes basés sur la ligne de commande de type Unix. De plus, une version de PowerShell est disponible pour les utilisateurs Mac (l’utilisation des commandes serait légèrement différente de Windows).

Dans un navigateur Web normal, l’URL télécharge directement le fichier CSV dans le dossier de téléchargement 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 requises.

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 lance une requête Web. Ensuite, l’URL requise est fournie.

La chose importante à noter ici est la nécessité d’un fichier de sortie pour enregistrer les données récupérées à partir de la requête Web. Vous devez d’abord créer un type de fichier du type de fichier à partir duquel vous avez l’intention de télécharger des données. Selon nos besoins, nous créons un fichier de type .csv pour enregistrer les données transmises via la requête Web à partir de l’URL ci-dessus.

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

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

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

Invoke-WebRequest URL -OutFile File_path

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

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

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 verrez le script ci-dessous s’exécuter jusqu’à la fin de l’action.

 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 y a des contraintes à l’utilisation de ce Invoke-WebRequest. Lorsque le site Web nécessite une authentification simple par mot de passe, il est nécessaire d’inclure vos informations de connexion et le Invoke-WebRequest.

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

Vous verrez le script ci-dessous s’exécuter lorsque vous exécutez 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. Ce serait au format .cs, que vous pouvez changer au format .csv pour le rendre utilisable avec n’importe quelle application lisible .csv.

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

Par conséquent, vous pouvez facilement télécharger le CSV ou d’autres types de fichiers via PowerShell via ces commandes ci-dessus. Comme expliqué, il s’agirait soit d’un fichier de sortie que vous avez fourni, ce qui serait facile à utiliser, étant donné que le format correct est pris en compte, soit de télécharger le fichier et de le convertir en un format lisible.

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.