我在网上浏览过,我还没有真正找到答案。我有以下代码:
@echo off
set Xval=1
set Yval=1
call :%Xval% 2>nul
pause
exit /b
:%Yval%
echo I have been called
pause
exit /b
应该调用%Xval%的函数,该函数等于“ 1”。
我还有另一个变量,它也等于1。它是%Yval%,并被命名为函数。
因此,我认为通过调用%Xval%(等于1),它将调用:%Yval%,因为它应该等于:1。
为什么这行不通?有解决方案吗?谢谢:)
答案 0 :(得分:1)
@echo off
set Xval=1
set Yval=1
call :%%%%Xval%%%% 2>nul
pause
exit /b
:%Xval%
echo I have been called
pause
exit /b
当您call
或goto
标签时,解释器会暂停执行,直到最后读取文件以找到 literal 标签。如果找不到,将从文件开头到结尾读取。如果未找到,则错误找不到标签。如果找到,则从找到的标签继续执行。
查找标签:%Yval%
可以通过转义运行时代码的百分号完成,即call :%%%%Yval%%%%
。