我正在尝试做这样的事情:
@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)"?如果您有任何建议,请提前感谢您。
答案 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