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

Aria2批处理函数调用异常:选项2/3错误执行:d.torrent问题

解决Aria2c批处理脚本选项跳转错误问题

核心排查方向和解决办法

1. 核对goto语句与标签的匹配度

  • 确保选项2、3对应的goto命令标签名完全正确,比如选项2要写goto :d.magnet_link,检查有没有拼写错误(比如把magnet写成magnent)、多余空格或者符号错位。
  • 确认:d.magnet_link和:selector标签在脚本里正确定义,没有被遗漏或者写错格式(标签必须单独一行,开头是冒号加标签名)。

2. 修正选项判断的逻辑顺序

如果用的是choice命令做选项选择,注意errorlevel的判断必须从高到低排列,否则会触发错误跳转:

choice /c 123 /m "请选择下载模式:"
if errorlevel 3 goto :selector
if errorlevel 2 goto :d.magnet_link
if errorlevel 1 goto :d.torrent

如果用的是set /p获取输入,要确保变量引用的引号正确,避免空输入或无效输入误判:

set /p choice=请输入选项(1/2/3):
if "%choice%"=="1" goto :d.torrent
if "%choice%"=="2" goto :d.magnet_link
if "%choice%"=="3" goto :selector

3. 检查标签位置与脚本结构

  • 确认:d.magnet_link和:selector标签没有被:d.torrent的代码块覆盖,也没有被其他提前的goto :eof或exit命令跳过。
  • 每个功能模块结束后必须加goto :end(或自定义的结束标签),避免执行完当前模块后继续往下跑,误触发:d.torrent的代码:
:d.magnet_link
rem 这里写磁力链接下载的Aria2c命令
goto :end

:selector
rem 这里写特定文件下载的Aria2c命令
goto :end

:d.torrent
rem 这里写Torrent下载的Aria2c命令
goto :end

:end
pause

4. 用最小化脚本定位问题

把脚本简化成只保留选项判断和跳转逻辑,去掉Aria2c命令,测试跳转是否正常:

@echo off
echo 1. Torrent下载
echo 2. 磁力链接下载
echo 3. 特定文件下载
set /p choice=请输入选项:
if "%choice%"=="1" goto :d.torrent
if "%choice%"=="2" goto :d.magnet_link
if "%choice%"=="3" goto :selector

:d.torrent
echo 触发Torrent模块
goto :end

:d.magnet_link
echo 触发磁力链接模块
goto :end

:selector
echo 触发特定文件模块
goto :end

:end
pause

如果这个简化版能正常跳转,说明问题出在Aria2c命令部分,比如命令里的特殊字符(&、|、空格等)破坏了脚本逻辑,给变量加引号即可解决,比如set "magnet_link=!user_input!"。

5. 处理变量延迟扩展问题

如果脚本启用了setlocal enabledelayedexpansion,变量引用要改用!变量名!而非%变量名%,否则会导致判断失效:

setlocal enabledelayedexpansion
set /p choice=请输入选项:
if "!choice!"=="2" goto :d.magnet_link

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 06:11:09