Ausführen des curl-Befehls in PowerShell

Migel Hewage Nimesha 21 Dezember 2022
Ausführen des curl-Befehls in PowerShell

Das Windows-Betriebssystem unterstützt eine Reihe von Befehlszeilentools, die bei der Automatisierung sehr nützlich sein können. curl ist eines dieser nützlichen Tools, mit denen Anfragen von oder an einen Server über eines der unterstützten Protokolle wie HTTP, HTTPS, FTP, FTPS, SMTP usw. gestellt werden können. Dieses Befehlszeilentool unterstützt einige der zusätzlichen Funktionen wie FTP-Upload, Proxy-Unterstützung, Fortsetzen der Übertragung und begrenzte Bandbreite.

Aus dem offiziellen Windows-Build 1804 wurde curl zu seiner Werkzeugkette hinzugefügt. Sie können dies überprüfen, indem Sie die Windows-Eingabeaufforderung öffnen und den folgenden Befehl ausführen.

curl --version

Ausgabe:

curl 7.55.1 (windows)

Die Ausgabe kann sich je nach Curl-Installation ändern.

Das curl in Windows PowerShell

In Windows PowerShell müssen Sie den Befehl curl etwas anders verwenden als in der Windows-Eingabeaufforderung. Denn der Befehl curl wird als Alias ​​auf das Cmdlet Invoke-WebRequest abgebildet. Sie können dies überprüfen, indem Sie den folgenden Befehl in einem PowerShell-Fenster ausführen.

Get-Alias -Name curl

Ausgabe:

CommandType		Name						Version		Source
-----------		----						-------		------
Alias			curl -> Invoke-WebRequest

Alle diese Befehle werden im PowerShell-Befehlsausführungsprozess aufgelöst. Normalerweise haben die Aliase die höchste Priorität. Daher sollte statt curl die ausführbare curl.exe direkt in der PowerShell verwendet werden. Sie können das Cmdlet Get-Command verwenden, um zu sehen, wie diese beiden Befehle in der Laufzeit aufgelöst werden.

Get-Command curl

Ausgabe:

CommandType		Name						Version		Source
-----------		----						-------		------
Alias			curl -> Invoke-WebRequest
Get-Command curl.exe

Ausgabe:

CommandType		Name						Version		Source
-----------		----						-------		------
Application		curl.exe					7.55.1.0	C:\Windows\system32\curl.exe

Die Schlussfolgerung ist, dass Sie, wenn Sie curl(wie in der Windows-Eingabeaufforderung) in PowerShell verwenden müssen, die ausführbare Curl-Datei (curl.exe) direkt aufrufen müssen. Andernfalls sollten Sie sich an den PowerShell-Alias ​​curl halten, der sich in das Cmdlet Invoke-WebRequest unter der Haube auflöst.

Die curl-Syntax in PowerShell

curl.exe [options] <url>

Sie können den folgenden Befehl ausführen, um weitere Informationen zum Befehl curl und seinen Optionen wie -a, -C usw. zu erhalten.

curl.exe --help

Ausgabe:

Usage: curl [options...] <url>

-a, --append		Append to target file when uploading
.
.
.
-C, --continue-at	<offset> Resumed transfer offest

Beispielszenarien

Zeigt die HTML-Webseite als Antwort zurück.

curl.exe https://www.google.com

Zeigt die Antwort, den Anforderungsheader und den Antwortheader an.

curl.exe -v https://www.google.com

Zeigt die Header-Informationen an.

curl.exe -I https://www.google.com

Speichert die Header-Informationen in einer Datei namens file1.txt.

curl.exe -I https://www.google.com -o file1.txt
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.