所以我试着用Windows批处理脚本从GitHub下载最新版本。我可以通过运行curl - s一长串的url https://api。github。com/repos/ActualMandM/cemu_graphic_packs/releases/latest但我不能找出如何通过“browser_download_url”:“https://github。com/ActualMandM/cemu_graphic_packs/releases/download/Github828/graphicPacks828。zip”旋度输出。我在网上找过,但我找到的都是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解析器。< br / >
我强烈推荐xidel。因为xidel
can open and download urls you won't 可以打开和下载不需要的url吗curl
or a batch-script.
查询"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/Github828/graphicPacks828.zip
(或-e "$json/(assets)()/browser_download_url"全文)
下载'graphicPacks828。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=')}"