batch: zahl buchstaben als Texteingabe?

2 Antworten

Bei set /p muss, bei einer reinen Benutzereingabe, immer mit ENTER bestätigt werden.

Alternativ könntest du CHOICE benutzen:

@echo off & setlocal enableDelayedExpansion
echo|set /p "=Eingabe: "
set "choices=0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

:loop

    CHOICE /C "%choices%" /N /CS >nul
    set /a choice=%errorlevel%

    if %choice% EQU 0   goto loop
    if %choice% EQU 255 goto loop

    set "char=!choices:~0,%choice%!"
    set "char=%char:~-1%"
    set "string=%string%%char%"
    echo|set /p "=%char%"
    set /a i+=1

if %i% LSS 5 goto loop


cls
echo.Deine Eingabe war: %string%
pause

Die Schleife wird so oft durchlaufen, bis 5 Buchstaben/Ziffern eingegeben wurden.

Falls dir die Zeilen komisch vorkommen:

echo|set /p "=Eingabe: "
echo|set /p "=%char%"

Die benutze ich dafür, dass nach einer Ausgabe (Die statt durch echo durch set/p erfolgt) nicht in die nächste Zeile gesprungen wird. Das Drücken der Enter-Taste wird durch den Zeilenumbruch von echo "simuliert".

Woher ich das weiß:Hobby

Mit batch überhaupt nicht. Höchstens eine Fehlermeldung bei Eingaben über 5 Zeichen.