如何在批处理中调用带有变量的函数?

时间:2018-06-23 00:30:45

标签: batch-file

我在网上浏览过,我还没有真正找到答案。我有以下代码:

@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。

为什么这行不通?有解决方案吗?谢谢:)

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

当您callgoto标签时,解释器会暂停执行,直到最后读取文件以找到 literal 标签。如果找不到,将从文件开头到结尾读取。如果未找到,则错误找不到标签。如果找到,则从找到的标签继续执行。

查找标签:%Yval%可以通过转义运行时代码的百分号完成,即call :%%%%Yval%%%%