PowerShell Download Datei

Migel Hewage Nimesha 6 Februar 2023
PowerShell Download Datei

Benutzer können CSV-Dateien von Websites herunterladen, auf denen sich wichtige Daten befinden, normalerweise große Dateien mit statistischen Informationen. Über den untenstehenden öffentlich verfügbaren Link können Sie beispielsweise die CSV-Datei der Annual Enterprise Survey – 2021 der neuseeländischen Regierung herunterladen. Wir verwenden die folgende CSV-Datei-URL in diesem Artikel, um zu demonstrieren, wie eine ähnliche Funktion über Windows PowerShell-Befehle ausgeführt wird.

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 ausgeführt wird, um Windows-Benutzern eine ähnliche Flexibilität wie Unix-ähnliche befehlszeilenbasierte Systeme zu bieten. Darüber hinaus ist eine Version von PowerShell für Mac-Benutzer verfügbar (die Verwendung von Befehlen würde sich geringfügig von Windows unterscheiden).

In einem normalen Webbrowser lädt die URL die CSV-Datei ohne Probleme direkt in den vom Benutzer angegebenen Download-Ordner herunter. Wenn Sie versuchen, dieselbe CSV-Datei in PowerShell herunterzuladen, sind bestimmte Befehle erforderlich.

Herunterladen einer Datei über Windows PowerShell

Der grundlegende Befehl, der zum Herunterladen einer Datei über Windows PowerShell verwendet werden kann, ist Invoke-WebRequest.

Durch diesen Befehl initiiert eine Webanforderung PowerShell eine Webanforderung. Dann wird die erforderliche URL bereitgestellt.

Wichtig dabei ist, dass eine Ausgabedatei benötigt wird, um die aus der Webanfrage abgerufenen Daten zu speichern. Sie sollten zuerst einen Dateityp des Typs der Datei erstellen, aus der Sie Daten herunterladen möchten. Als unsere Anforderung erstellen wir eine Datei vom Typ .csv, um die Daten zu speichern, die über die Webanforderung von der obigen URL übermittelt werden.

Es ist zu beachten, dass nicht nur CSV, sondern auch andere Dateitypen auf diese Weise heruntergeladen werden können.

Verwenden von Invoke-WebRequest zum Herunterladen einer CSV-Datei in PowerShell

Dann kann der Invoke-WebRequest wie folgt verwendet werden.

Invoke-WebRequest URL -OutFile File_path

Hier wäre -OutFile die Datei zum Speichern von Daten aus der Online-CSV-Datei.

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 der PowerShell sehen Sie das folgende Skript, das ausgeführt wird, bis die Aktion abgeschlossen ist.

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

Die Ausgabe der obigen Ausführung ähnelt der Datei, die Sie direkt herunterladen würden.

Es gibt jedoch Einschränkungen bei der Verwendung dieses Invoke-WebRequest. Wenn die Website eine einfache passwortbasierte Authentifizierung erfordert, müssen Ihre Anmeldedaten und der Invoke-WebRequest angegeben werden.

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

Das folgende Skript wird ausgeführt, 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-lesbaren Anwendung verwendbar zu machen.

Wenn Ihre Website jedoch eine Zwei-Faktor-Authentifizierung oder andere Multi-Faktor-Authentifizierungssysteme erfordert, wäre das Initiieren der Websitzung wie hier angegeben problematisch. 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 die CSV-Datei oder andere Dateitypen einfach über PowerShell über die oben genannten Befehle herunterladen. Wie bereits erläutert, handelt es sich entweder um eine von Ihnen bereitgestellte Ausgabedatei, die einfach zu verwenden ist, sofern das richtige Format berücksichtigt wird, oder um die Datei herunterzuladen und in ein lesbares Format zu konvertieren.

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.