AFAIK, z poziomu samego pliku wsadowego (z rozszerzeniem .bat, czy .cmd) nie jest bezpośrednio możliwe wykrywanie wciśniętych klawiszy. Plik wsadowy jest ograniczony w swoich możliwościach i nie ma wbudowanych funkcji do obsługi interakcji z klawiaturą w czasie rzeczywistym.
Wybór można spróbować osiągnąć np. tak:
@ECHO OFF
ECHO.
SET "a1=a1"
SET "a2=a2"
SET "a3=a3"
SET "a4=a4"
SET "a5=a5"
SET /P key=Nacisnij 1, 2, 3, 4 lub 5:
IF /I "%key%"=="1" (
ECHO %a1%
) ELSE IF /I "%key%"=="2" (
ECHO %a2%
) ELSE IF /I "%key%"=="3" (
ECHO %a3%
) ELSE IF /I "%key%"=="4" (
ECHO %a4%
) ELSE IF /I "%key%"=="5" (
ECHO %a5%
) ELSE (
ECHO Nieprawidlowy klawisz.
)
ECHO.
ECHO Nacisnij ENTER
PAUSE > nul
polecenie CHOICE pozwala na wybranie klawisza bez wciskania ENTER, w tym przypadku klawisza z cyframi od 1 do 5, AFAIK nieobsługiwane są klawisze funkcyjne.
@ECHO OFF
ECHO.
SET "a1=a1"
SET "a2=a2"
SET "a3=a3"
SET "a4=a4"
SET "a5=a5"
CHOICE /C:12345 /N /M "Nacisnij 1, 2, 3, 4, lub 5: "
IF ERRORLEVEL 5 (
ECHO %a5%
) ELSE IF ERRORLEVEL 4 (
ECHO %a4%
) ELSE IF ERRORLEVEL 3 (
ECHO %a3%
) ELSE IF ERRORLEVEL 2 (
ECHO %a2%
) ELSE IF ERRORLEVEL 1 (
ECHO %a1%
)
ECHO.
ECHO Nacisnij ENTER
PAUSE > nul