Abbruch wenn Sonderzeichen in SET p Befehl sind z.B. Komma
Hallo,
Die Batch soll bei Eingabe von 1 und 2 weitermachen. Ich habe festgestellt daß Sonderzeichen zu einem Abbruch der Batch führen.
Die ersten 3 Sonderzeichen kann man problemlos austauschen, bei den letzten 3 erfolgt ein Abbruch, vermutlich sind diese Dachmaskierungen falsch.
Wenn ich die Sonderzeichen nicht zuerst austausche und der Anwender gibt z.B. ein Komme ein bricht die Batch bei dem LSS Befehl ab. Den brauche ich aber weil der untere Wert nicht zwingend 0 ist.
Ich könnte natürlich eine Dauerschleife machen und das Programm nur bei 1 oder 2 die Codeschleife aufrufen lassen, das ganze wird mir aber dann durch zu viele Markierungen zu unübersichtlich. Es ist ziemlich groß.
Die Batch soll bei Eingabe von 1 und 2 weitermachen. Ich habe festgestellt daß Sonderzeichen zu einem Abbruch der Batch führen.
Die ersten 3 Sonderzeichen kann man problemlos austauschen, bei den letzten 3 erfolgt ein Abbruch, vermutlich sind diese Dachmaskierungen falsch.
Wenn ich die Sonderzeichen nicht zuerst austausche und der Anwender gibt z.B. ein Komme ein bricht die Batch bei dem LSS Befehl ab. Den brauche ich aber weil der untere Wert nicht zwingend 0 ist.
Ich könnte natürlich eine Dauerschleife machen und das Programm nur bei 1 oder 2 die Codeschleife aufrufen lassen, das ganze wird mir aber dann durch zu viele Markierungen zu unübersichtlich. Es ist ziemlich groß.
:t
set Eingabe=0
SET /p Eingabe=%Eingabeplatzhalter% Auswahl:
CALL :Sonderzeichenentfernen
IF "%Eingabe%" EQU "" SET Eingabe=-1
IF "%Eingabe%" EQU "" goto :t
IF "%Eingabe%" EQU "0" goto :t
IF %Eingabe% LSS 0 goto :t
IF %Eingabe% GTR 2 goto :t
echo 1 und 2 hier
...
GOTO :Ende
:Sonderzeichenentfernen
SET Eingabe=%Eingabe:"=-1%
SET Eingabe=%Eingabe:,=-1%
SET Eingabe=%Eingabe:;=-1%
IF "%Eingabe%" EQU "^|" SET Eingabe=-1
IF "%Eingabe%" EQU "^<" SET Eingabe=-1
IF "%Eingabe%" EQU ^> SET Eingabe=-1
GOTO :EOF
:Ende
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 390662
Url: https://administrator.de/forum/abbruch-wenn-sonderzeichen-in-set-p-befehl-sind-z-b-komma-390662.html
Ausgedruckt am: 12.04.2025 um 16:04 Uhr
2 Kommentare
Neuester Kommentar
Sonderzeichen im Prompt von SET /P lassen sich genauso handhaben wie Sonderzeichen bei der Zuweisung in einem SET Statement, nämlich mit Anführungszeichen um die Zuweisung.
Wenn du deine Variablen einmal zugewiesen hast, kannst du den Rest mit eingeschalteter verzögerter Variablenerweiterung erledigen, um Nebenwirkungen zu verringern.
Funktioniert dann auch mit allen möglichen Sonderzeichen in der Ausgabe, gänzlich unmaskiert.
Steffen
set /p "x=Prompt mit &<>| "
Wenn du deine Variablen einmal zugewiesen hast, kannst du den Rest mit eingeschalteter verzögerter Variablenerweiterung erledigen, um Nebenwirkungen zu verringern.
setlocal EnebleDelayedExpansion
if "!y!"=="!x!" echo !x!
Steffen