使用变量的输出调用标签

时间:2013-11-06 03:13:34

标签: batch-file batch-processing

我正在尝试做这样的事情:

@echo off

:beginning
choice /c:123
if %errorlevel%== 1 set test= aaa
if %errorlevel%== 2 set test= bbb
if %errorlevel%== 3 set test= ccc
call :%test%one
pause
goto beginning

:aaaone
echo phrase
exit /b

:bbbone
echo phrase
exit /b

:cccone
echo phrase
exit /b

我试图接听电话:%test%one调用错误级别的输出,但它不会识别变量的输出" test"对于%test%并说它无法找到标签。 有没有办法让用户选择程序调用的内容,而不是仅使用" goto(label)"?如果您有任何建议,请提前感谢您。

2 个答案:

答案 0 :(得分:3)

您需要在以下行中删除=之后的空格:

if %errorlevel%==1 set test=aaa
if %errorlevel%==2 set test=bbb
if %errorlevel%==3 set test=ccc

答案 1 :(得分:1)

您也可以使用不同的,更简单的形式,如下所示:

@echo off

:beginning
choice /c:123
call :%errorlevel%one
pause
goto beginning

:1one
echo phrase
exit /b

:2one
echo phrase
exit /b

:3one
echo phrase
exit /b