Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Sprungziel als Variable

Frage Entwicklung Batch & Shell

Mitglied: maxmex

maxmex (Level 1) - Jetzt verbinden

21.03.2009, aktualisiert 19:53 Uhr, 3749 Aufrufe, 3 Kommentare

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
Mitglied: 60730
21.03.2009 um 20:10 Uhr
Servus,
ein Weg wäre - den "hier dürfte nie einer sein" zu wählen:

01.
:start 
02.
set /p eingabe=": " 
03.
goto %eingabe% 
04.
echo  Falsche Eingabe && goto start 
05.
:1
ein anderer wäre - "stimmts"?
Im Fall einer Zahl zwischen 1 und 9 eher leicht

01.
:start 
02.
set /p eingabe=": " 
03.
for /l %%i in (1,1,9) do if  "%%i" =="%eingabe%" goto %eingabe% 
04.
echo  Falsche Eingabe && goto start 
05.
:1
Gruß
Bitte warten ..
Mitglied: 77522
11.04.2009 um 00:09 Uhr
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)
Bitte warten ..
Mitglied: 60730
11.04.2009 um 14:44 Uhr
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:

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).

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ß
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Mit zusammengesetzter Variable auf andere Variable zugreifen (2)

Frage von abiber zum Thema Batch & Shell ...

VB for Applications
Auswahlliste mit variablen (3)

Frage von 94451 zum Thema VB for Applications ...

Batch & Shell
gelöst Variable in Regedit (3)

Frage von MeinSenfDazu zum Thema Batch & Shell ...

Batch & Shell
gelöst Grosses Variablen Problem ( Batch) (30)

Frage von clragon zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows 10
Windows 10 im Unternehmen? (26)

Frage von zorlayan zum Thema Windows 10 ...

LAN, WAN, Wireless
Ping u. DNS geht am Rechner nicht mehr (19)

Frage von Kuemmel zum Thema LAN, WAN, Wireless ...

Festplatten, SSD, Raid
Raid 1 2 SSD mit Windows Server 2016 (17)

Frage von jaywee zum Thema Festplatten, SSD, Raid ...