You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使用Windows批处理脚本下载GitHub最新发布版本?

解决方案:Windows批处理脚本提取GitHub发布下载链接并下载

我帮你准备了两个适配Windows批处理的方案,都不需要用PowerShell或wget,纯依托curl和批处理自带命令(可选轻量工具jq来提升可靠性):

方案1:纯批处理(无第三方工具依赖)

这个方案只用Windows自带的批处理命令和curl,适合不想额外安装工具的场景:

@echo off
setlocal enabledelayedexpansion

:: 1. 获取最新Release的API数据并保存到临时文件
curl -s https://api.github.com/repos/ActualMandM/cemu_graphic_packs/releases/latest > temp.json

:: 2. 提取包含下载链接的行,并清理出纯净URL
for /f "tokens=2 delims=:" %%a in ('findstr /i "browser_download_url" temp.json') do (
    set "raw_url=%%a"
    :: 去掉字符串中的双引号
    set "clean_url=!raw_url:"=!"
    :: 去掉字符串首尾的空格
    set "clean_url=!clean_url: =!"
)

:: 3. 用curl下载文件(-L处理GitHub的跳转链接,-o指定输出文件名)
curl -L -o graphicPacks_latest.zip !clean_url!

:: 4. 清理临时文件
del temp.json

endlocal
echo 下载完成!文件已保存为graphicPacks_latest.zip

关键步骤说明:

  • setlocal enabledelayedexpansion:启用延迟变量扩展,确保在for循环内部能正确修改和读取变量
  • findstr /i "browser_download_url":从API返回的JSON中筛选出包含目标链接的行
  • 两次字符串替换:分别去掉链接前后的双引号和多余空格,得到可直接使用的纯净URL
  • curl -L:处理GitHub下载链接的自动重定向,避免下载失败

方案2:用jq增强(更可靠的JSON解析)

如果能接受安装一个轻量的命令行JSON工具jq,这个方案会更稳定——纯批处理的字符串截取容易受JSON格式变化影响,而jq是专门的JSON处理器,能精准定位链接:

  1. 先下载jq.exe(放到脚本同目录或系统PATH路径下即可)
  2. 使用以下脚本:
@echo off

:: 1. 用jq直接提取第一个发布资产的下载链接(-r参数输出不带引号的原始字符串)
for /f %%a in ('curl -s https://api.github.com/repos/ActualMandM/cemu_graphic_packs/releases/latest ^| jq -r ".assets[0].browser_download_url"') do set "download_url=%%a"

:: 2. 下载文件
curl -L -o graphicPacks_latest.zip %download_url%

echo 下载完成!文件已保存为graphicPacks_latest.zip

优势:

  • .assets[0].browser_download_url直接定位到发布资产数组的第一个文件的下载链接,完全不受JSON换行、空格格式变化的影响
  • 代码更简洁,出错概率更低

注意事项:

  • 确保你的Windows系统已经安装了curl:Windows 10 1809及以后版本默认自带curl,老版本需要手动下载curl.exe并放到PATH中
  • 如果目标仓库有多个发布文件,方案1会取最后一个匹配的链接,方案2可以修改[0]为对应索引(比如[1]取第二个文件)

内容的提问来源于stack exchange,提问作者Torph

火山引擎 最新活动