Wie man eine Datei in PowerShell herunterlädt

Benutzer können CSV-Dateien von Websites herunterladen, auf denen wichtige Daten gespeichert sind, in der Regel große Dateien mit statistischen Informationen. Der öffentlich zugängliche Link unten würde es Ihnen ermöglichen, die CSV-Datei der jährlichen Unternehmensumfrage - 2021 der Regierung von Neuseeland herunterzuladen. Wir werden die folgende CSV-Datei-URL in diesem Artikel verwenden, um zu demonstrieren, wie man eine ähnliche Funktion über Windows PowerShell-Befehle durchführt.
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 ist eine Skriptlösung, die auf Befehlszeilenanweisungen basiert und Windows-Benutzern eine Flexibilität ähnlich wie bei Unix-ähnlichen, befehlszeilenbasierten Systemen bietet. Darüber hinaus ist eine Version von PowerShell für Mac-Benutzer verfügbar (Die Verwendung von Befehlen wäre geringfügig anders als unter Windows).
In einem normalen Webbrowser wird die URL direkt in den vom Benutzer angegebenen Download-Ordner heruntergeladen, ohne Probleme. Wenn Sie versuchen, dieselbe CSV in PowerShell herunterzuladen, sind bestimmte Befehle erforderlich.
Herunterladen einer Datei über Windows PowerShell
Der grundlegende Befehl, der verwendet werden kann, um eine Datei über Windows PowerShell herunterzuladen, ist Invoke-WebRequest
.
Durch diesen Befehl initiiert eine Webanfrage PowerShell eine Webanfrage. Dann wird die erforderliche URL bereitgestellt.
Wichtig zu beachten ist hier die Notwendigkeit einer Ausgabedatei, um die Daten zu speichern, die von der Webanfrage abgerufen werden. Sie sollten zuerst eine Datei vom Typ der Datei erstellen, von der Sie Daten herunterladen möchten. Nach unserem Bedarf erstellen wir eine .csv-Datei, um die durch die Webanfrage von der obigen URL übermittelten Daten zu speichern.
Es ist notwendig, im Hinterkopf zu behalten, dass nicht nur CSV, sondern auch andere Dateitypen auf diese Weise heruntergeladen werden können.
Verwendung von Invoke-WebRequest
zum Herunterladen einer CSV-Datei in PowerShell
Dann kann Invoke-WebRequest
auf folgende Weise verwendet werden.
Invoke-WebRequest URL -OutFile File_path
Hier wäre -OutFile
die Datei, um Daten aus der Online-CSV-Datei zu speichern.
Unten sehen Sie die vollständige Ausführung mit unserer Beispiel-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
Als Ausgabe in PowerShell würden Sie das unten stehende Skript sehen, das läuft, bis die Aktion abgeschlossen ist.
Writing web request
Writing request stream... (Number of bytes written: 33451654)
Die Ausgabe der obigen Ausführung ist ähnlich der Datei, die Sie direkt herunterladen würden.
Es gibt jedoch Einschränkungen bei der Verwendung von Invoke-WebRequest
. Wenn die Website eine einfache passwortbasierte Authentifizierung erfordert, müssen Sie Ihre Anmeldedaten und Invoke-WebRequest
einfügen.
Invoke-WebRequest URL -Add your lgin information- -SessionVariable MyNewSession
Sie werden das unten stehende Skript sehen, das läuft, wenn Sie den obigen Stream ausführen, bis der Download abgeschlossen ist.
Writing web request Writing request stream... (Number of bytes written: 1474178)
Dann würde es eine Websitzung für Sie erstellen und die erforderliche Datei herunterladen. Es wäre im .cs-Format, das Sie in das .csv-Format ändern können, um es mit jeder .csv-leseanwendbaren Anwendung verwendbar zu machen.
Wenn Ihre Website jedoch eine Zwei-Faktor-Authentifizierung oder andere Multi-Faktor-Authentifizierungssysteme erfordert, wäre die Initiierung der Websitzung wie hier angegeben kompliziert. Daher wird empfohlen, einen persönlichen Link (Persönlicher Cloud-Link - privater Zugriff) zu verwenden, um die Datei über PowerShell herunterzuladen.
Daher können Sie mit den obigen Befehlen ganz einfach die CSV- oder andere Dateitypen über PowerShell herunterladen. Wie erklärt, wäre es entweder in eine von Ihnen bereitgestellte Ausgabedatei, die einfach zu verwenden wäre, vorausgesetzt, dass das richtige Format berücksichtigt wird, oder die Datei herunterladen und in ein lesbares Format konvertieren.
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.