批处理 - 动态标签或函数

3
我正在制作一个批处理文本冒险游戏(因为它是最容易入手的语言之一,几乎不需要编程经验),我想知道是否有办法制作动态goto或标签。
例如,我有一个动态健康和能量系统,它显示不同的健康条,具体取决于从C:/驱动器上的保存文件中获取的健康变量。
这需要相当多的代码,如果我可以调用函数就会更容易。
作为替代方案,我想要一个动态goto。我的意思是一个变量,然后是一个goto函数。
:foo
set currentlbl="foo-"
echo Hello!
goto foo2

:foo-
echo %test%
pause
exit

:foo2
if "test"=="chizzits" set test2="derp"
if "test"=="chuzzits" set test2="herp"
goto %currentlbl%

很遗憾,这样是行不通的,因为goto命令不能识别变量。有没有解决方法呢?


1
顺便说一句,如果你正在寻找一种简单的编程语言来制作简单的文本游戏 - 使用 PYTHON - Monacraft
4
确实,使用Windows批处理编写一个简单的程序很简单。但是编写像文本冒险游戏这样构造良好、复杂的程序实际上相当困难。你需要许多深奥的知识和丑陋的技巧来做大多数编程语言中非常简单的事情。而且对于一个大型批处理脚本的调试可能是一个真正的挑战。如果你真的坚持使用批处理,你可以看看我将原始“Adventure”移植到批处理的版本:http://www.dostips.com/forum/viewtopic.php?f=3&t=4876&p=28277#p28277 - dbenham
1个回答

4

是的,可以。只需在set命令中去掉引号,或在标签中加上引号。

set currentlbl=foo-
:foo-

或者

set currentlbl="foo-"
:"foo-"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接