You may want to look at using the CHOICE command.
I have always liked CHOICE for uses like this because of the timer feature where you put pressure on the person to make decisions or else it defaults by use of the /T switch. I also agree that choice is a good direction to go with your project. I used it a lot in a batch game I wrote in 1997 called Pyramid of Doom which was more of a chose your own adventure book type of game with multiple paths and different endings. I always liked the chose your own adventure books as a kid in the 80s and decided to make a batch version to share with friends.
Also when using goto statements you will want to use them like below with an escape route such as ( goto Next_Selection1 ) seen below so that they are more like a gosub to bring you back to where you want to be, otherwise it will just continue executing line for line until redirected, and in this case without an escape route it will display all echo'd text:
@ECHO OFF
cls
CHOICE /C ABCD /N /T 100 /D C /M "Select a letter ... A = Forwards, B = Left, C = Right, or D = Backwards"
IF ERRORLEVEL 1 goto selection1
IF ERRORLEVEL 2 goto selection2
IF ERRORLEVEL 3 goto selection3
IF ERRORLEVEL 4 goto selection4
:selection1
cls
echo You moved forwards and come to a door with a keyhole that is locked
goto Next_Selection1
:selection2
cls
echo You turned left and see a long hallway
goto Next_Selection1
:selection3
cls
echo You turned right and see a painting that seems to be staring at you
goto Next_Selection1
:selection4
cls
echo You turn around and walk back a few steps back to the location you were
prior
goto Next_Selection1
:Next_Selection1
@echo.
@echo.
@echo.
CHOICE /C ABCD /N /T 100 /D C /M "Select a letter ... A = Forwards, B = Left, C = Right, or D = Backwards"
IF ERRORLEVEL 1 goto selection5
IF ERRORLEVEL 2 goto selection6
IF ERRORLEVEL 3 goto selection7
IF ERRORLEVEL 4 goto selection8
.....................
Also this ( goto Next_Selection1 ) is not really necessary at the last text output as for the next thing to do is to give the choices to the user again so this is not necessary, although the path is explicit to following the goto that the others follow after displaying text via echo:
:selection4
cls
echo You turn around and walk back a few steps back to the location you were
prior
goto Next_Selection1
:Next_Selection1
So this will perform the same without the explicit escape path which is not necessary as the last echo listing:
:selection4
cls
echo You turn around and walk back a few steps back to the location you were
prior
:Next_Selection1