Curl 在Windows上下载并解压缩存档

Curl 在Windows上下载并解压缩存档,curl,cmd,7zip,Curl,Cmd,7zip,在Windows上,如何下载tar.xz归档文件并将其解压缩,而不先将其写入磁盘 这一尝试: curl -L https://www.example.com/archive.tar.xz | 7z x -si -so | 7z x -si -ttar -ofolder 给出与此类似的错误: % Total % Received % Xferd Average Speed Time Time Time Current

在Windows上,如何下载tar.xz归档文件并将其解压缩,而不先将其写入磁盘

这一尝试:

curl -L https://www.example.com/archive.tar.xz | 7z x -si -so | 7z x -si -ttar -ofolder
给出与此类似的错误:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
7-Zip 19.00 (x64) : Copyright (c) 1999-2018 Igor Pavlov : 2019-02-21

Extracting archive: ERROR:

Can not open encrypted archive. Wrong password?

Not implemented
--
Path =
Type = tar
Code Page = UTF-8

Everything is Ok

Files: 0
Size:       0
Compressed: 0
100   144  100   144    0     0    144      0  0:00:01 --:--:--  0:00:01   214
(23) Failed writing body
首先将归档文件写入磁盘时,它会起作用:

curl -L https://www.example.com/archive.tar.xz -o temp.tar.xz && 7z x -so temp.tar.xz | 7z x -si -ttar -ofolder && del temp.tar.xz

cmd.exe
中,如果希望连接行,可以使用
^
而不是
\
。So类型
curl-Lhttps://www.example.com/archive.tar.xz ^
,按enter键,然后在
更多?
提示下继续键入命令行。当然,你可以在一行上全部输入。但是,在您的情况下,这将不起作用,因为cmd.exe不是这样工作的,您不能仅将命令与管道链接。另外,当你下载一个文件时,你认为会发生什么?只需在内存中缓存,直到完成,然后在那里等待您对其执行操作,而不是将其写入磁盘?谢谢,我已经解决了这个问题。不过,这个问题仍然适用:/I我问你,当你也下载一个文件时,你认为会发生什么?
curl
默认情况下,会将下载的文件内容发送到
stdout
。因此,应该可以使用
|7z x-si
将其直接发送到7-ziphttps://www.example.com/archive.tar.xz将通过管道传输,而不是目标文件内容!