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
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.