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
GELÖST

CHOICE Frage Was tun bei Falscheingabe des Users wie kann gesprungen werden

Frage Entwicklung Batch & Shell

Mitglied: MrSonei6

MrSonei6 (Level 1) - Jetzt verbinden

30.06.2012, aktualisiert 14:13 Uhr, 3376 Aufrufe, 3 Kommentare

Hi ich Jungs und Mädls? ;)

Ich bastl gerade an ner .bat Datei rum.

Ich hab zwei Auswahlmöglichkeiten die mit "1" und "2" zum jeweiligen punkt im Skript springen.

Frage wie oder was kann ich eingeben wenn ich eine nicht angegebene Auswahl eingebe damit das Skript zu einen bestimmten Punkt springt wenn ich zum Beispiel eine "5" eingebe soll es zu dem Punkt "Falsch" im Skript springen

Hier mal der Anfang vom Script

:NEU
@CLS
@TITLE ShutDown Programm
@ECHO In wievielen Stunden soll sich dein PC Herunterfahren?
@Echo Bitte gebe eine Zahl zwischen 1 und 2 ein
@ECHO [1]= 1h [2]= 2h
@Echo *
@ECHO [a]= Herunterfahren abbrechen
@ECHO *
@ECHO [e]= Exit
@ECHO.
@SET /P CHOICE=
@IF "%CHOICE%" == "1" GOTO :1
@IF "%CHOICE%" == "2" GOTO :2
@IF "%CHOICE%" == "a" GOTO :ABBRUCH
@IF "%CHOICE%" == "e" GOTO :EXIT

UND HIER MÖCHTE ICH EINE FALSCHENGABE ABFANGEN DIE MICH ZU DEN PUNKT ":FALSCH" IM SKRIPT BRINGT

HABE SCHON folgendes getestet
"@IF "%CHOICE%" => "nul" GOTO :FALSCH"
oder
if not %choice%== set choice=%choice:FALSCH%



:1
@CLS
@ECHO Dein PC faehrt in einer Stunde herunter.
@ECHO *
@ECHO Fals du jetzt doch noch abbrechen willst druecke "a"
@shutdown /s /t 3600

@SET /P CHOICE=
@IF "%CHOICE%" == "a" GOTO :ABBRUCH
@IF "%CHOICE%" => "nul" GOTO :EXIT
@ECHO.

:2
@CLS
@ECHO Dein PC faehrt in zwei Stunde herunter.
@ECHO *
@ECHO Fals du jetzt doch noch abbrechen willst druecke "a"
@shutdown /s /t 7200

@SET /P CHOICE=
@IF "%CHOICE%" == "a" GOTO :ABBRUCH
@IF "%CHOICE%" => "nul" GOTO :EXIT
@ECHO.

........
Mitglied: rubberman
30.06.2012, aktualisiert um 14:28 Uhr
Hallo MrSonei6

Ein @echo off am Anfang des Codes erspart dir die @s am Anfang jeder Zeile. Codeformatierung wäre auch nett gewesen.

Zu deinem Problemchen:
01.
IF "%CHOICE%" == "1" GOTO :1 
02.
IF "%CHOICE%" == "2" GOTO :2 
03.
IF "%CHOICE%" == "a" GOTO :ABBRUCH 
04.
IF "%CHOICE%" == "e" GOTO :EXIT
Nach diesen Zeilen ist klar, dass die Variable CHOICE weder den Wert 1, noch 2, a, oder e hat, denn das wurde ja bereits geprüft. Du musst also nichts weiter tun als ein GOTO FALSCH in die nächste Zeile schreiben.

Grüße
rubberman
Bitte warten ..
Mitglied: MrSonei6
30.06.2012 um 14:48 Uhr
Vielen lieben Dank
So einfach OHH man
DANKE

Und Entschuldige die nicht Codeformatierung, habe ich vergessen!!

LG
ICH
Bitte warten ..
Mitglied: pieh-ejdsch
30.06.2012, aktualisiert um 16:17 Uhr
moin,

eine Fehlerunabhängige Variante zB. wegen Sonderzeichen bei Eingabe:
01.
for /f delims^= %i in ('set /p "choice=Bitte mach Deine Eingabe: "^>con ^&cmd /von/c echo !choice!' 
02.
) do   IF %%i == 1 (GOTO :1 
03.
) else IF %%i == 2 (GOTO :2 
04.
) else IF /i %%i == a (GOTO :ABBRUCH 
05.
) else IF /i %%i == e GOTO :EXIT 
06.
GOTO :Falsch
PS.
Entschuldige die nicht Codeformatierung, habe ich vergessen!!
Dann hole sie doch bitte nach.
[Edit]
Goto :Falsch nach die Schleife gesetzt.
[/Edit]

Gruß Phil
Bitte warten ..
Ähnliche Inhalte
Datenbanken
Firebird SQL Frage (2)

Frage von Argoadmin zum Thema Datenbanken ...

MikroTik RouterOS
gelöst Frage zu MikroTik Accesspoints (5)

Frage von MaximusPrime zum Thema MikroTik RouterOS ...

Neue Wissensbeiträge
Batch & Shell

Batch - ein paar Basics die man kennen sollte

Tipp von Pedant zum Thema Batch & Shell ...

Microsoft

Restrictor: Profi-Schutz für jedes Window

(6)

Tipp von AlFalcone zum Thema Microsoft ...

Batch & Shell

Batch zum Zurücksetzen eines lokalen Profils

Tipp von Mr.Error zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
gelöst Benutzer lässt sich nur an einem Clientcomputer anmelden (17)

Frage von Ammann zum Thema Windows Server ...

Vmware
gelöst Wie würdet Ihr eine ESXi Cluster Farm managen? (11)

Frage von AlFalcone zum Thema Vmware ...

Batch & Shell
gelöst Gruppenzugehörigkeit von AD Usern ermitteln - die Perfektion fehlt (11)

Frage von Stefan007 zum Thema Batch & Shell ...