Batch - Eingabe muss 4 Stellig sein

Hallo zusammen,
ich will einen Wert eingeben:
set /p bc=Bitte Barecode Endnummer eingeben (111111???) eingeben:
Dabei soll der User die letzen 4 Ziffern eingeben.
Wenn er weniger eingibt soll ein Hinweis kommen und die Eingabe muss erneut getätigt werden. Wenn 4 Stellen eingegeben werden springt er goto zum nächsten Schritt. Wenn mehr als 4 Ziffern eingegeben werden --> wie bei weniger als 4 Ziffer

Wer kann mir dabei helfen.

Vielen Dank schonmal für Eure Unterstützung!

Wer kann mir dabei helfen.

Du hast ja nicht mal einen ansatz .

Immoment sieht das aus wie , wer kann das für mich machen .
I

wenn du nicht helfen willst lass es sein und spar dir solche Kommentare.
Ich benötige nur nen Tip mit welchen befehlen es geht danke

in Pseudocode:

if eingabe keine Zahl oder eingabe9999
then Eingabe widerholen
else fahre fort

Nun ist Eigenleistung angesagt.

mit mehreren

z.b. mit Teilstring
oder wie oben mit zahlengrenzen

und in jedem fall mit IF

Das Problem an der sache ist das es auch nummern wie 0001 oder 0123 geben wird, daher wird die Eingrenzung nicht passen.
ich brauch nur die info wie ich im sage wenn ich nur 3 zeichen eingegeben habe…

wenn du nicht helfen willst lass es sein und spar dir solche
Kommentare.
Ich benötige nur nen Tip mit welchen befehlen es geht danke

Hallo Jens,

fällt dir ein Zacken aus der Krone wenn du hier mal eine komplette kleine Batch zeigst?
Und komplett bezieht sich einzig auf den Eingabebereich.

Und Lae will, kann, möchte dir helfen aber er will erst mal genau sehen was eigentlich vorliegt.
Warum also diese bissige Reaktion wie als wenn du da einen Nebenkriegsschauplatz eröffnen willst?

Und bedenke, du sitzt vor deiner Batch und kennst sie, wir nicht.

Mit meinen bescheidenen Batchkenntnissen deute ich den Set Befehl so daß du einer umgebungsvariablen einen Wert zuweist.
M.E. ist das keine Eingabe-Abfrage.
Kann mich zugegebnereweise aber auch täuschen.

Wie auch immer, bitte Ommmmmm, das hilft beiden Seiten.

Gruß
Reinhard

Das Problem an der sache ist das es auch nummern wie 0001 oder
0123 geben wird, daher wird die Eingrenzung nicht passen.
ich brauch nur die info wie ich im sage wenn ich nur 3 zeichen
eingegeben habe…

Wie ich schon geschrieben hatte , mit Teilstring

Teilstring
Syntax
var:~n,m
siehe

In PseudoCode

EINGABE

VIERTER_BUCHSTABE von EINAGE
FUENFTER_BUCHSTABE von EINGABE

WENN FUENFTER_BUCHSTABE GLEICH LEER
DANN
WENN VIERTER_BUCHSTABE UNGLEICH LEER
DANN SINDS GENAU VIER
ANSONSTEN SINDS ZU WENIG
ANSONSTEN SINDS ZU VIEL

und da du das bestimmt nicht gebacken kriegst und hier ewig oft nachfragen wirst
poste ich es gleich , damit wenigstens andere die Lösung achten und nachschauen können, nachdem sie sich mit dem pseudocode an eine eigene Lösung rangetastet haben.

@echo off
REM iacta alea est at wer-weiss-was.de 2011-05-27 01:19
REM BATCH Loesung zur Aufgabe GENAU 4 Zeichen eingeben

EINGABE

echo Enter Username
set /p UserName=
set minum=%UserName:~3,1%
set maximum=%UserName:~4,1%
IF „%maximum%“ EQU „“ (
IF „%minum%“ NEQ „“ (
GOTO GENAU
) ELSE (
echo zu wenig Zeichen
echo.
GOTO EINGABE
)
) ELSE (
echo zu viele Zeichen
echo.
GOTO EINGABE
)

GENAU

echo genau 4 Zeichen
PAUSE

Moin,

schön gemacht, ich bewundere Deine Geduld. Noch schöner wäre es, Du würdest pre anstatt prehtml benutzen - die Schriftgröße ist an der Grenze der Lesbarkeit.

Gruß Ralf

OT^6: Batch - Eingabe muss 4 Stellig sein
ich hab hier eh immer die textgrösse vergrössert . Probier mal lässt sich gleich viel besser lesen :smile: Und da sie kein design anbieten , nicht mal die grösse kan man bestimmen , was wollen sie da erwarten … schlechte tools produzieren schlechte ergebnisse .

Hallo zusammen,

ich danke Euch für die Unterstützung und wünsch noch einen schönen Sonntag!