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, 3726 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 ..
Neuester Wissensbeitrag
Exchange Server

WSUS bietet CU22 für Exchange 2007 SP3 nicht an. EOL Exchange 2007

Tipp von DerWoWusste zum Thema Exchange Server ...

Ähnliche Inhalte
C und C++
C-Sharp Variable Zuordnung (3)

Frage von Judo99 zum Thema C und C ...

Batch & Shell
gelöst Powershell - Werte in Variable durch Schleife erweitern bzw. ändern (5)

Frage von ralfkausk zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst Batch xls nach aktuellem Datum auslesen und email senden (14)

Frage von michi-ffm zum Thema Batch & Shell ...

Windows Server
SBS 2011 Standard virtualisieren (13)

Frage von HeinrichM zum Thema Windows Server ...

Backup
Datensicherung ARCHIV (12)

Frage von fautec56 zum Thema Backup ...

LAN, WAN, Wireless
Per Script auf UniFi-controller zugreifen und WPA2-Key ändern (11)

Frage von Winfried-HH zum Thema LAN, WAN, Wireless ...