batch: zahl buchstaben als Texteingabe?
Hallo!
Ich kenn natürlich sowas wie set/p"Variabel=Text:"
jedoch wird hier die eingabe mit Enter beendet! Wie kann ich festlegen dass es zB nach 5 Zeichen automatisch beendet
2 Antworten
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Batch, cmd
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.