为什么相同的 curl 命令在 windows 和 linux 中输出不同的东西?

Why does the same curl command output different things in windows and linux?

为什么相同的 curl -o file https://www.link.com/ 命令输出不同的东西?

例如,如果我 运行 命令 curl -o source.txt https://www.youtube.com/playlist?list=PLIx6FwnpuyNW9RxmWaGzKumLu-gUPy-q4 带有 YouTube 播放列表 link。

Linux 输出所有内容,包括所有条目(标题、缩略图、links 等)。

Windows 另一方面只会输出页面的布局,跳过所有播放列表内容。

我在这里错过了什么?为什么会这样,是否有不同的 Windows 命令可以实现相同的目的?

Curl.exe 存在 在 Windows 机器的盒子里 Windows 10 1803 或更高(这意味着大约从 2018 年 3 月开始)和类似的服务器版本。

但是,curl(没有 .exe)有一段奇怪的历史,PowerShell 中内置了一些快捷方式,我认为这就是让您感到悲伤的原因。

我是什么意思?

在你的机器上试一试。

get-command curl

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

您可能会惊讶地发现 PowerShell 中的 curl 是名为 Invoke-WebRequest 的内置 cmdlet 的别名。这与 Linux 或 curl.exe 程序中的 curl 有点相似,但实际上完全不同。

但是,请使用完整的可执行文件名再试一次。

 gcm curl.exe

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

这意味着运行curl和运行curl.exe是两个不同的东西!

如果您像这样尝试您的命令,它应该与您在 Linux 中找到的类似。

curl.exe -o source.txt https://www.youtube.com/playlist?list=PLIx6FwnpuyNW9RxmWaGzKumLu-gUPy-q4