批量返回上一个标签('goto'命令)

Meg*_*eon 6 batch-file

例如,

@echo off
goto main

:main
echo Select:
echo 1) Goto label 1
echo 2) Goto label 2
set /p choice=
if %choice% == 1 goto label1
if %choice% == 2 goto label2

:label1
echo Will now direct you to label2
echo Press any key to go to label2
pause >nul

:label2 [PROBLEM HERE]
echo Type 'N' or 'E' and press Enter to go back to label1 or exit.
set /p choice2=
if %choice2% == N goto label1
if %choice2% == E exit
Run Code Online (Sandbox Code Playgroud)

请忽略它所说的"goto main"部分,我知道没有必要,但我已经习惯了.

"问题在这里"表示我希望批处理返回到label1的部分,而不是实际键入代码以指定返回到以前的标签,因为有时我可能需要label1来处理某些事情以转到label2并处理另一件事,然后再次返回label1以继续其业务.

Ste*_*han 15

goto没有"回归".但你可以call成为你脚本的一部分:

@echo off
echo main program
call :label1
echo main program
call :label2
echo main program

pause
exit /b

:label1
echo subroutine
goto :eof

echo never reached

:label2
echo sub two
goto :eof
Run Code Online (Sandbox Code Playgroud)