Search code examples
dosbatch-file

How can I return a single character from the console in a batch script without pressing enter?


I'd like to read/return a single character from a batch script without having to hit the enter key, like getChar() in C/C++. How would I do this?


Solution

  • Use the CHOICE command

    Example borrowed from this site

       @echo off
       :menu
       cls
       echo.
       echo       A - Text for item A
       echo       B - Text for item B
       echo       C - End
       echo.
       choice /c:ABC > nul
       if errorlevel 3 goto end
       if errorlevel 2 goto B
       if errorlevel 1 goto A
       echo Error... choice not installed
       goto end
       :A
       echo Commands for item A
       pause
       goto menu
       :B
       echo Commands for item B
       pause
       goto menu
       :end