Neue, geänderte Befehle unter MS-DOS 6.0

E-Books


CHOICE



Ein lang erwarteter Befehl für die Batch-Programmierung ist der Befehl CHOICE, mit dessen Hilfe in einer Batchprozedur die Eingabe eines Zeichens angefordert werden kann. Aus einer Liste von Zeichen kann der Benutzer eines auswählen und eingeben. Wird ein Zeichen eingegeben, das nicht in der Liste aufgeführt ist, wird ein Warnton erzeugt und die Eingabe ignoriert.
Durch ein korrektes Zeichen wird der CHOICE-Befehl beendet und die Eingabe kann über den ERRORLEVEL abgefragt werden (siehe später).
CHOICE wird mit der folgenden Syntax eingesetzt:
CHOICE [/C[:]tasten][/n][/s][t[:c,nn][text]
Die Argumente und Schalter haben folgende Bedeutung:
/C[:]zk
Für zk werden jene Tasten angegeben, die der Benutzer eingeben kann. Bei der Ausführung des Befehls werden die angegeben Zeichen in eckigen Klammern, getrennt durch Kommas angezeigt.
Befehl: CHOICE /Cjnq
Anzeige: [J,N,Q]
Der Benutzer hat die Möglichkeit J, N oder Q einzugeben (per Voreinstellung wird dabei Groß-/Kleinschreibung ignoriert). Wird das erste Zeichen (J) eingegeben, gibt CHOICE über ERRORLEVEL den Wert 1, für das zweite Zeichen (N) den Wert 2 und für das dritte (Q) wird 3 zurückgegeben.
Wird der Schalter /C nicht angegeben, werden die Standardoptionen [J,N] angezeigt und akzeptiert.
/n
Durch diesen Schalter werden die Zeichen, die eingegeben werden können, nicht angezeigt.
/s
Der Schalter /s bewirkt, daß der Benutzer bei seiner Eingabe Groß-/Kleinschreibung beachten muß.
/t[:]c,nn
Über den Schalter /t kann eine Voreinstellung für das einzugebene Zeichen festgelegt werden und wieviele Sekunden CHOICE auf eine Eingabe wartet. Wird während der Zeit (nn Sekunden) nicht eines der möglichen Zeichen eingegeben, gibt CHOICE den Wert für jenes Zeichen zurück, das durch c definiert ist. Das angegebene Zeichen muß in der Liste der möglichen Zeichen enthalten sein.
CHOICE /c:abcdef /t:d,10
In diesem Beispiel kann der Benutzer eines der Zeichen von a bis d eingeben. Erfolgt die richtige Eingabe nicht innerhalb von 10 Sekunden, wird über ERRORLEVEL der Wert 4 zurückgegeben, da das Zeichen d als Standardeingabe angegeben wurde. Beachten Sie in diesem Beispiel die Verwendung der zusätzlich möglichen Doppelpunkte, die der Verdeutlichung der Argumente dienen.
text
text ist eine optionale Zeichenkette, die vor der Liste der möglichen Zeichen ausgegeben wird. Die Zeichenkette muß durch Anführungszeichen begrenzt sein, wenn sie einen Schrägstrich (/) beinhaltet, damit der folgende Buchstabe nicht als Schalter interpretiert wird.
Befehl: CHOICE /c:abcd Geben Sie Ihre Wahl ein
Ausgabe: Geben Sie Ihre Wahl ein [A, B, C, D]?
Durch die Besonderheit der ERRORLEVEL-Abfrage (wahr, wenn der Rückgabewert gleich oder größer dem angegebenen Wert ist) ist in einer Batch-Prozedur die Reihenfolge der Abfrage des Rückgabewertes zu beachten.
Das folgende Beispiel soll Ihnen in sehr einfacher Form die Abfrage des Rückgabewertes demonstrieren:
@ECHO OFF
CLS
ECHO.
ECHO.
ECHO A U S W A H L
ECHO.
ECHO A. Festplatte C: überprüfen
ECHO B. Diskette in A: formatieren
ECHO C. Antivirus ausführen
ECHO.
ECHO D. Prozedur beenden
ECHO.
ECHO.
CHOICE /C:ABCD /T:D,20
IF ERRORLEVEL 4 GOTO Ende
IF ERRORLEVEL 3 MSAV
IF ERRORLEVEL 2 FORMAT A:
IF ERRORLEVEL 1 CHKDSK C:
:Ende
ECHO Prozedure beendet
(c) Jürgen Richter