batch file that detects keystrokes. how?

淺唱寂寞╮ 提交于 2019-12-01 03:06:17

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!