如何在batch中仅使用curl实现重定向后的文件下载
批处理下载自动重定向链接文件的实现方案
方案1:使用系统内置curl(推荐,适配Win10 1809、Win11及更新版本)
Win10 1809版本之后系统默认预装了curl工具,原生支持自动跟随重定向,实现逻辑最简单:
@echo off :: 配置下载链接和本地保存路径 set "SOURCE_URL=https://someurl.com/file" set "SAVE_FILE=smth.txt" :: -L参数指定curl自动跟随301/302等重定向响应 curl -L "%SOURCE_URL%" -o "%SAVE_FILE%" :: 下载结果校验 if exist "%SAVE_FILE%" ( echo 下载完成,文件已保存为%SAVE_FILE% ) else ( echo 下载失败,请检查链接有效性 ) pause
如果下载的是https站点且存在证书校验问题,可以给curl加上-k参数跳过证书校验。
方案2:使用bitsadmin工具(适配Win7及所有Windows版本)
如果需要兼容更低版本的Windows系统,可以用系统自带的bitsadmin工具,它默认会自动处理重定向逻辑:
@echo off set "SOURCE_URL=https://someurl.com/file" :: %~dp0代表取当前批处理文件所在的目录,使用绝对路径避免bitsadmin识别异常 set "SAVE_FILE=%~dp0smth.txt" bitsadmin /transfer downloadTask /download /priority normal "%SOURCE_URL%" "%SAVE_FILE%" if exist "%SAVE_FILE%" ( echo 下载完成,文件已保存到%SAVE_FILE% ) else ( echo 下载失败 ) pause
注意bitsadmin不支持直接跳过证书校验,如果遇到https站点证书问题建议优先使用curl方案。
内容的提问来源于stack exchange,提问作者Solindek
相关产品推荐
相关产品推荐

