Sprungziel als Variable
Hallo Leute im Batchforum,
ich habe mich seit einiger Zeit mal wieder mit Batch beschäftigt und bin bei einer Usereingabe auf folgendes Problem gestoßen.
Ich habe Usereingaben 1, 2, 3,.....7, 8 und 9 die dann auch entsprechend weitergeleitet werden.
set /p eingabe=": "
goto %eingabe%
:1
:9
Wenn ich jetzt aber einen User habe der etwas anderes eingibt. Wie kann ich denn das abfangen?
set /p eingabe=": "
goto %eingabe%
:1
:9
:%eingabe%
so hab ich es probiert. Es geht aber überhaupt nicht und ich stehe irgendwie da und weiß nicht weiter.
Wäre nett wenn mir jemand weiterhelfen könnte
Danke
maxmex
ich habe mich seit einiger Zeit mal wieder mit Batch beschäftigt und bin bei einer Usereingabe auf folgendes Problem gestoßen.
Ich habe Usereingaben 1, 2, 3,.....7, 8 und 9 die dann auch entsprechend weitergeleitet werden.
set /p eingabe=": "
goto %eingabe%
:1
:9
Wenn ich jetzt aber einen User habe der etwas anderes eingibt. Wie kann ich denn das abfangen?
set /p eingabe=": "
goto %eingabe%
:1
:9
:%eingabe%
so hab ich es probiert. Es geht aber überhaupt nicht und ich stehe irgendwie da und weiß nicht weiter.
Wäre nett wenn mir jemand weiterhelfen könnte
Danke
maxmex
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 112049
Url: https://administrator.de/forum/sprungziel-als-variable-112049.html
Ausgedruckt am: 17.04.2025 um 11:04 Uhr
3 Kommentare
Neuester Kommentar

Servus,
ein Weg wäre - den "hier dürfte nie einer sein" zu wählen:
ein anderer wäre - "stimmts"?
Im Fall einer Zahl zwischen 1 und 9 eher leicht
Gruß
ein Weg wäre - den "hier dürfte nie einer sein" zu wählen:
:start
set /p eingabe=": "
goto %eingabe%
echo Falsche Eingabe && goto start
:1
Im Fall einer Zahl zwischen 1 und 9 eher leicht
:start
set /p eingabe=": "
for /l %%i in (1,1,9) do if "%%i" =="%eingabe%" goto %eingabe%
echo Falsche Eingabe && goto start
:1
Gruß

hi
ich bin mir nicht sicher aber du könntest es vielleicht so machen:
@echo off
echo eingabe:
set /p "eingabe="
if "%eingabe%" =="1" goto 1
if "%eingabe%" =="2" goto 2
if "%eingabe%" =="3" goto 3
if "%eingabe%" =="4" goto 4
if "%eingabe%" =="5" goto 5
if "%eingabe%" =="6" goto 6
if "%eingabe%" =="7" goto 7
if "%eingabe%" =="8" goto 8
if "%eingabe%" =="9" goto 9
if not "%eingabe%" =="1,2,3,4,5,6,7,8,9" goto 10
oder
for /l %%t in (1 1 9) do if "%eingabe%" =="%%t" goto %eingabe%
for /l %%t in (1 1 9) do if not "%eingabe%" =="%%t" goto (was auch immer)
ich bin mir nicht sicher aber du könntest es vielleicht so machen:
@echo off
echo eingabe:
set /p "eingabe="
if "%eingabe%" =="1" goto 1
if "%eingabe%" =="2" goto 2
if "%eingabe%" =="3" goto 3
if "%eingabe%" =="4" goto 4
if "%eingabe%" =="5" goto 5
if "%eingabe%" =="6" goto 6
if "%eingabe%" =="7" goto 7
if "%eingabe%" =="8" goto 8
if "%eingabe%" =="9" goto 9
if not "%eingabe%" =="1,2,3,4,5,6,7,8,9" goto 10
oder
for /l %%t in (1 1 9) do if "%eingabe%" =="%%t" goto %eingabe%
for /l %%t in (1 1 9) do if not "%eingabe%" =="%%t" goto (was auch immer)

Servus,
entweder ist das Problem schon gelöst - oder der Verfasser hat sich aus dem Staub gemacht
Ich verstehe tatsächlich deine Lösung nicht - bzw. den Unterschied zur Vorherigen...
"Probier mal folgendes aus:
if not "%windir%"=="%windir%,%username%" echo wie auch
if not "%username%"=="%windir%,%username%" echo so auch nicht
Um das "so" zu realisieren, müste das in einer Schleife laufen.
Apropos Schleife:
Die Kommas, die du oben (ohne Schleife) benutzt - müssen bei deiner anderen Alternative schon drin sein
Gruß
entweder ist das Problem schon gelöst - oder der Verfasser hat sich aus dem Staub gemacht
Ich verstehe tatsächlich deine Lösung nicht - bzw. den Unterschied zur Vorherigen...
"Probier mal folgendes aus:
if not "%windir%"=="%windir%,%username%" echo wie auch
if not "%username%"=="%windir%,%username%" echo so auch nicht
Um das "so" zu realisieren, müste das in einer Schleife laufen.
Apropos Schleife:
FOR /L %Variable IN (Start,Schritt,Ende) DO Befehl [Parameter]
Der Satz ist eine Folge von Zahlen von Start bis Ende und der
angegebenen Schrittweite. So erzeugt (1,1,5) die Folge 1 2 3 4 5 und
(5,-1,1) erzeugt die Folge (5 4 3 2 1).
Der Satz ist eine Folge von Zahlen von Start bis Ende und der
angegebenen Schrittweite. So erzeugt (1,1,5) die Folge 1 2 3 4 5 und
(5,-1,1) erzeugt die Folge (5 4 3 2 1).
Die Kommas, die du oben (ohne Schleife) benutzt - müssen bei deiner anderen Alternative schon drin sein
for /l %%t in (1 1 9) do if "%eingabe%" =="%%t" goto %eingabe%
(Wären Sie es - würde die Zeile auch funktionieren und hätte bis auf eine andere Variable - %%T statt %%i - den gleichen Inhalt, wie diejenige welche da schon seit ~3 Wochen steht)Gruß