Batchprogramierung ja/nein

...komplette Frage anzeigen

4 Antworten

Wie währe es mit:

@echo off

Choice /C jn
If %Errorlevel%==1 goto 3
If %Errorlevel%==2 goto 2

:2

:3
pause

Ich erkläre es dir mal, der Befehl Choice heißt in deutsch übersetzt Auswahl und wenn du Choice /C schreibst dann sind hinter dem /C die Auswahlen für die tasten hinzuschreiben. Wenn du die Auswahlen 1 und 2 haben willst dann mach Choice /C 12

Das mit dem If Errorlevel ist auch ganz einfach, also if heißt wenn. Und wenn du das hinschreibst If %Errorlevel%==1 goto 2 dann ist das die erste auswahl von deinem Choice befehl (Choice /C jn) also das J weil bei %Errorlevel%==1 die 1 steht für die erste auswahl. Wenn man J drückt dann geht das Programm bei :2 weiter

Bei dem zweitem Buchstaben ist es dann If %Errorlevel%==2 goto 3 also es führt eine aktion aus wenn man die zweite auswahl von Choice drückt (Die Taste n) Ich hoffe ich konnte es dir verständlich erklären! :D

MfG, FisheyLP

der Fehler ist dass Errorlevel niemals buchstaben sondern nur zahlen zurückgibt!

Beispiel:

choice /?

choice /n /c "JN" /m "(J)a, (N)ein?"
if errorlevel 1 goto ja
if errorlevel 2 goto nein

:ja
echo es wurde ja gesagt...
pause>nul
exit
:nein
echo es wurde nein gesagt
pause>nul

Am Beispiel CHOICE /C ab /N /M "Select a for option 1 and b for option 2."

a --> Errorlevel 1

b --> Errorlevel 2

Abbruch --> Errorlevel 0

was ist hier dann falsch???

*Choice

If Errorlevel j goto punktdrei

If Errorlevel n goto punktzwei

:Punktzwei

Dateien werden gelöscht, computer wird heruntergefahren

:Punktdrei

Dateien werden gelöscht, computer wird heruntergefahren*

0

Also ich hätte es so gemacht:

@echo off

echo Sollen die Dateien entfernt werden?

echo (J)a oder (N)ein

set /p x=

if %x%==j goto 1

if %x%==n goto 2

:1

echo Dateien wurden entfernt.

pause

exit

:2

echo Dateien wurden nicht entfernt.

pause

exit

das ist aber nicht idiotensicher. das skript wird nicht funktionieren wenn jemand J oder N (Groß-kleinschreibung) hineinschreibt - und auch nicht wenn er das wort ausschreibt... so wäre es sicher....

   if %x:~0,1%==j goto 1
   if %x:~0,1%==J goto 1
   if %x:~0,1%==n goto 2
   if %x:~0,1%==N goto 2
0
@Pr0fessor

oder noch einfacher

if /i %x%==J goto 1
if /i %x%==N goto 2

das /i ignoriert die groß/-kleinschreibung

0

Was möchtest Du wissen?