在 PowerShell 中執行 Curl 命令
Windows 作業系統支援許多在自動化中非常有用的命令列工具。curl
是這些有用的工具之一,可用於通過任何受支援的協議(如 HTTP、HTTPS、FTP、FTPS、SMTP 等)向伺服器發出請求或向伺服器發出請求。這個命令列工具支援一些 FTP 上傳、代理支援、恢復傳輸和有限頻寬等附加功能。
從 windows 官方版本 1804 開始,curl
已新增到其工具鏈中。你可以通過開啟 Windows 命令提示符並執行以下命令來檢查這一點。
curl --version
輸出:
curl 7.55.1 (windows)
輸出可能會根據你的 curl 安裝而更改。
Windows PowerShell 中的 curl
在 Windows PowerShell 中,你必須以與 Windows 命令提示符稍有不同的方式使用 curl
命令。因為 curl
命令被對映為 Invoke-WebRequest
cmdlet 的別名。你可以通過在 PowerShell 視窗中執行以下命令來驗證這一點。
Get-Alias -Name curl
輸出:
CommandType Name Version Source
----------- ---- ------- ------
Alias curl -> Invoke-WebRequest
所有這些命令都將在 PowerShell 命令執行過程中得到解決。通常,別名具有最高優先順序。因此,你應該直接在 PowerShell 中使用 curl.exe
可執行檔案,而不是 curl
。你可以使用 Get-Command
cmdlet 檢視這兩個命令如何在執行時解析。
Get-Command curl
輸出:
CommandType Name Version Source
----------- ---- ------- ------
Alias curl -> Invoke-WebRequest
Get-Command curl.exe
輸出:
CommandType Name Version Source
----------- ---- ------- ------
Application curl.exe 7.55.1.0 C:\Windows\system32\curl.exe
結論是,如果你需要在 PowerShell 中使用 curl
(與 Windows 命令提示符相同),則需要直接呼叫 curl 可執行檔案(curl.exe
)。否則,你應該堅持使用 PowerShell curl
別名,該別名在後臺解析為 Invoke-WebRequest
cmdlet。
PowerShell 中的 curl
語法
curl.exe [options] <url>
你可以執行以下命令以獲取有關 curl
命令及其選項(例如 -a
、-C
等)的更多資訊…
curl.exe --help
輸出:
Usage: curl [options...] <url>
-a, --append Append to target file when uploading
.
.
.
-C, --continue-at <offset> Resumed transfer offest
示例場景
顯示作為響應返回的 HTML 網頁。
curl.exe https://www.google.com
顯示響應、請求標頭和響應標頭。
curl.exe -v https://www.google.com
顯示標題資訊。
curl.exe -I https://www.google.com
將標頭資訊儲存到名為 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.