所以,我试图使用Windows批处理脚本从GitHub下载最新版本。我可以通过运行curl -s https://api.github.com/repos/ActualMandM/cemu_graphic_packs/releases/latest
获得一长串url,但我不知道如何将它输出的"browser_download_url": "https://github.com/ActualMandM/cemu_graphic_packs/releases/download/Github828/graphicPacks828.zip"
传递给curl。我在网上查了一下,但我找到的都是PowerShell,而且大多数都是wget。
如果您真的想为此使用批处理,则必须在输出JSON中搜索要查找的值,然后处理该字符串。如果JSON全部出现在一行中,则需要采用不同的方法,但您很幸运。
for /f "tokens=1,* delims=:" %%A in ('curl -ks https://api.github.com/repos/ActualMandM/cemu_graphic_packs/releases/latest ^| find "browser_download_url"') do (
curl -kOL %%B
)
我添加了-k
标志,因为我的计算机出于某种原因需要它(所以其他人可能也需要)。
-O
将输出文件的名称设置为远程输出文件名
-L
遵循重定向,这是从Github下载所需的。
你访问的Github API url返回JSON,所以你需要一个JSON解析器。
我强烈推荐xidel。xidel
可以打开和下载url,所以你不需要curl
或批处理脚本。
查询"browser_download_url"-attribute:
xidel.exe -s "https://api.github.com/repos/ActualMandM/cemu_graphic_packs/releases/latest" -e "$json//browser_download_url"
https://github.com/ActualMandM/cemu_graphic_packs/releases/download/Github874/graphicPacks874.zip
(或全部-e "$json/(assets)()/browser_download_url"
)
下载'graphicPacks874.zip'到当前目录:
xidel.exe ^
-s "https://api.github.com/repos/ActualMandM/cemu_graphic_packs/releases/latest" ^
-f "$json//browser_download_url" ^
--download "{substring-after($headers[starts-with(.,'Content-Disposition')],'filename=')}"
对于r8389或更新版本(因为这个提交),您可以直接使用--download .
。