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