Überprüfung auf genau 4 Chars in Batch
Hallo Zusammen,
ich habe mal wieder eine Batchfrage. Ist es möglich eine Eingabe zu prüfen, ob Sie genau vier Zahlen beinhaltet und wenn nicht, dass er wieder auf die Sprungmarke geht, wo die Eingabe gemacht werden soll?
Hier einmal meinen Code:
Eine kleine Nebenfrage habe ich noch, es taucht immer wieder mal auf, dass es heißt "... kann an dieser Stelle Syntaktisch nicht verwendet werden" - Was genau heißt das? Also was habe ich für einen Fehler gebaut? Leerzeichen?
Vielen Dank für eure Hilfen!
ich habe mal wieder eine Batchfrage. Ist es möglich eine Eingabe zu prüfen, ob Sie genau vier Zahlen beinhaltet und wenn nicht, dass er wieder auf die Sprungmarke geht, wo die Eingabe gemacht werden soll?
Hier einmal meinen Code:
:GemiNrCheck
set /p OrderNo=Bitte die Gemini-Nummer eingeben:
goto LanguagueCheck
Eine kleine Nebenfrage habe ich noch, es taucht immer wieder mal auf, dass es heißt "... kann an dieser Stelle Syntaktisch nicht verwendet werden" - Was genau heißt das? Also was habe ich für einen Fehler gebaut? Leerzeichen?
Vielen Dank für eure Hilfen!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 280240
Url: https://administrator.de/contentid/280240
Ausgedruckt am: 08.11.2024 um 15:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo Panubu.
Kurz und schmerzlos per FINDSTR:
Grüße
rubberman
Kurz und schmerzlos per FINDSTR:
@echo off &setlocal
set "OrderNo="
set /p "OrderNo=Bitte die Gemini-Nummer eingeben: "
call :check_four_digits OrderNo
if errorlevel 1 (echo Fehler!) else echo %OrderNo% ist gueltig.
pause
exit /b
:check_four_digits VarName
setlocal EnableDelayedExpansion
echo(!%~1!|findstr /x "[0-9][0-9][0-9][0-9]" >nul && (endlocal &exit /b 0)
endlocal &exit /b 1
es taucht immer wieder mal auf, dass es heißt "... kann an dieser Stelle Syntaktisch nicht verwendet werden" - Was genau heißt das?
Du verursachst einen Syntaxfehler. Poste den gesamten Code und wie man den Fehler nachstellen kann ...Grüße
rubberman
Hallo Panubu.
OK lösen wir das Rätsel des Syntaxfehlers. Mit
definierst du eine Variable mit Name
In deinem Vergleich ist also die Variable %LangCheck% gar nicht definiert und wird deshalb zu einem leeren String expandiert. Wenn dass passiert, sieht dein Vergleich wie folgt aus:
Der erste Vergleichsoperand fehlt, was zum Syntaxerror führt.
Grüße
rubberman
das Leerzeichen wegnehmen
Besser die Leerzeichen wegnehmen (auf beiden Seiten des =)Aber ich dachte das ignoriert er?
Ich weiß nicht mit welcher Sprache du das verwechselst.OK lösen wir das Rätsel des Syntaxfehlers. Mit
set LangCheck = 1
definierst du eine Variable mit Name
'LangCheck '
und Wert ' 1'
(ohne Apostrophen, aber beachte jeweils die Leerzeichen).In deinem Vergleich ist also die Variable %LangCheck% gar nicht definiert und wird deshalb zu einem leeren String expandiert. Wenn dass passiert, sieht dein Vergleich wie folgt aus:
if == 1 (
Der erste Vergleichsoperand fehlt, was zum Syntaxerror führt.
Grüße
rubberman