You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Batch脚本从curl输出的单行txt文件中提取PNG链接URL

Batch提取单行JSON中目标PNG链接的实现方案

实现逻辑

不需要安装jq等第三方JSON处理工具,纯用Windows Batch原生能力即可完成提取,适配当前单行返回文件场景:

  • 保留原有curl请求逻辑,将接口返回写入runone.txt
  • 读取文件全文到内存变量,通过固定字符串前缀定位到目标URL的起始位置
  • 以URL结尾的双引号为分隔符做截断,拿到完整PNG链接存入变量,供后续逻辑调用

完整可运行代码

@echo off
setlocal enabledelayedexpansion

:: 原有curl请求命令,无需修改
curl -X "GET" %runone% -H "accept: application/json" -o runone.txt

:: 读取接口返回的单行JSON内容
set /p api_resp=<runone.txt

:: 匹配目标字段的固定前缀,对应JSON里data.link.href的前置标识
set "prefix=data":{"link":{"href":"
:: 截取前缀之后的所有剩余内容
call set "remain_str=%%api_resp:*!prefix!=%%"

:: 以双引号为分隔符取第一段,即为完整PNG链接
for /f tokens^=1^ delims^=^" %%i in ("!remain_str!") do set "png_url=%%i"

:: 后续逻辑直接调用!png_url!即可,例如下载图片可以直接写:
:: curl "!png_url!" -o target.png

:: 如果需要在endlocal之后仍使用该变量,执行以下语句做变量提升
endlocal&set "png_url=%png_url%"

注意事项

  • 该方案仅依赖系统原生能力,在所有默认Windows环境下均可直接运行,无需额外预装软件
  • 匹配逻辑和给出的JSON结构强绑定,只要接口不调整data.link.href的层级结构,提取结果就稳定有效
  • 如果后续需要提取其他字段的内容,只需修改prefix变量里的匹配前缀为对应字段的固定标识即可
  • 提取到的png_url变量为标准URL格式,可直接传入后续下载、请求类命令使用,无需额外转义处理

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 13:42:04