问题
im designing a collection of video games for the command line (such as deal or no deal, tic tac toe, racing, maze puzzle, connect four, wack a mole, etc.) however it would really make things easier for me if i could make it so that when the user makes a selection (such as what direction to move in the game) , that as soon as they press the arrow keys then it carries out the IF statements that follow. Instead of having to press enter after each selection. something like...
:one1
set /p direction1= :
IF %direction1%== {ARROW KEY LEFT} goto two2
IF %direction1%== {ARROW KEY RIGHT} goto three3
IF %direction1%== {ARROW KEY UP} goto four4
IF %direction1%== {ARROW KEY DOWN} goto five5
goto one1
Any Ideas?
回答1:
:start
choice /c:HPKM /n "Move with arrow keys"
if "%errorlevel%"=="1" {COMMAND}
if "%errorlevel%"=="2" {COMMAND}
if "%errorlevel%"=="3" {COMMAND}
if "%errorlevel%"=="4" {COMMAND}
回答2:
It depends of your windows version.
If you use Vista, you can use choice to receive single keys directly, but with pure batch it seems not to be possible to detect the arrow keys.
EDIT
:one1
choice /c awsd /n /m "MOVE with A S D w"
IF %errorlevel%==1 goto two2
IF %errorlevel%==2 goto three3
IF %errorlevel%==3 goto four4
IF %errorlevel%==4 goto five5
goto one1
回答3:
http://winsupport.org/packages/choice.exe
That is a custom choice that allows for arrow keys to be used.
they are used like so: choice /c:HPKM /n "Move with arrow keys"
The only problem being that you can also use H, P, K and M...
来源:https://stackoverflow.com/questions/4340191/batch-file-that-detects-keystrokes-how