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

如何在批处理文件中调用内容后返回原调用的标签位置?

批处理脚本实现调用Inventory后返回原标签位置

你的当前脚本中,当在:Forest或:StoryBegin标签下输入I跳转到:Inventory后,执行完Inventory的代码会直接继续运行后续的:StoryBegin标签,无法回到之前的调用位置。要解决这个问题,我们可以通过记录返回标签的方式实现跳转后返回。

解决方案步骤

  • 新增一个变量(比如returnTo),用于存储调用Inventory前的当前标签位置
  • 修改:Inventory的结尾逻辑,执行完后跳转到returnTo变量指定的标签
  • 在每个需要调用Inventory的位置,先给returnTo赋值当前标签,再跳转到Inventory

修改后的完整代码

@echo off
setlocal enabledelayedexpansion

:Inventory
cls
echo Inventory:
echo - 疗伤药 x3
echo - 铁剑 x1
echo - 地图 x1
echo.
pause >nul
goto !returnTo!

:StoryBegin
cls
echo === 故事开始 ===
echo 你站在十字路口,面前有两条路:
echo 1. 前往森林
echo 2. 前往城堡
echo I. 查看背包
set /p input=请输入选择: 
if "%input%" == "1" goto Forest
if "%input%" == "2" goto Castle
if /i "%input%" == "I" (
    set "returnTo=StoryBegin"
    goto Inventory
)
goto StoryBegin

:Forest
cls
echo === 森林 ===
echo 你进入了幽暗的森林,发现两个方向:
echo 1. 前往木屋
echo 2. 爬上小山
echo I. 查看背包
set /p input=请输入选择: 
if "%input%" == "1" goto House
if "%input%" == "2" goto Hill
if /i "%input%" == "I" (
    set "returnTo=Forest"
    goto Inventory
)
goto Forest

:Castle
cls
echo === 城堡 ===
echo 你来到了城堡大门,暂时没有可探索的内容。
echo 输入任意键返回十字路口...
pause >nul
goto StoryBegin

:House
cls
echo === 木屋 ===
echo 你在木屋里找到了一瓶药水!
echo 输入任意键返回森林...
pause >nul
goto Forest

:Hill
cls
echo === 小山 ===
echo 你在山顶看到了城堡的全貌,记住了路线。
echo 输入任意键返回森林...
pause >nul
goto Forest

关键细节说明

  • setlocal enabledelayedexpansion:启用延迟变量扩展,确保:Inventory中能正确读取returnTo的动态值
  • if /i:忽略输入大小写,输入i或I都能触发背包查看
  • pause >nul:隐藏默认的"请按任意键继续..."提示,让界面更简洁
  • 每个标签结尾的goto 当前标签:避免执行完当前逻辑后自动跳转至其他无关标签

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 11:46:08