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, 3374 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 ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Utilities
Frage zum GoogleDocs-Viewer (1)

Frage von SarekHL zum Thema Utilities ...

Netzwerkmanagement
gelöst Habe eine Frage zur Netzwerktechnik und zwei Switche? (7)

Frage von deadlef zum Thema Netzwerkmanagement ...

Backup
Backupkonzept gesucht, bzw. Frage zum Beispiel (9)

Frage von DeathNote zum Thema Backup ...

Heiß diskutierte Inhalte
Zusammenarbeit
Als Administrator im Großraumbüro (29)

Frage von Dopamin85 zum Thema Zusammenarbeit ...

Exchange Server
gelöst Test-ActiveSyncConnectivity Error nach neuem Zertifikat (22)

Frage von Driphex zum Thema Exchange Server ...

Hardware
Laptop ins Salzwasser gefallen (18)

Frage von Marcel94 zum Thema Hardware ...

Hardware
Lenovo Yoga 500 über angeschlossene USB Tastatur booten (13)

Frage von thomasreischer zum Thema Hardware ...