edv.kleini
Win11 Registry-Fummler
Das ist eine Gruppenrichtlinie ... richtig.
Grundsätzlich schalte ich bei meinen PC´s erst einmal per reg-Datei Import das Info-Center
als Grupenrichtlinie ein. Dann ist bzw. gilt diese Variable schon einmal als gesetzt in Batch-Script!
Dann funktioniert auch die Abfrage dazu und auch die echo Ergebniszeile dazu.
Ich habe aber mit der Choice.exe auch ein Problem.
Eine Abfrage der ESC-Taste scheidet mit der Choice.exe ja wohl aus, oder?
Die Choice.exe kann die Zahlen von 0-9, die Buchstaben von A bis Z und
die ASCII Sonderzeichen von 128 bis 254. Aber eben nicht den ASCII Code 27 (Taste ESC).
Obwohl merkwürdiger Weise hier zu entnehmen ist, dass es angeblich doch gehen soll:
Siehe fett gemachte Zeilen im Spoiler. Aber so geht es auch nicht. Ich habe es getestet!
Nachteil bei der Pause >nul Funktion in Kombination mit der Keyin.exe ist halt,
dass man jede weitereführende Menü-Taste zweimal drücken muss. Und ja... auch die Taste ESC.
Ärgerlich
Es gibt keine 100%ige passende Möglichtkeit!
Weder die Choice.exe noch die Keyin.exe bieten eine zufriedenstellende Lösung.
Aber trotzdem haben beide .exe Dateien so Ihre Vorteile. Aber eben auch Nachteile.
Grundsätzlich schalte ich bei meinen PC´s erst einmal per reg-Datei Import das Info-Center
als Grupenrichtlinie ein. Dann ist bzw. gilt diese Variable schon einmal als gesetzt in Batch-Script!
Dann funktioniert auch die Abfrage dazu und auch die echo Ergebniszeile dazu.
Ich habe aber mit der Choice.exe auch ein Problem.
Eine Abfrage der ESC-Taste scheidet mit der Choice.exe ja wohl aus, oder?
Die Choice.exe kann die Zahlen von 0-9, die Buchstaben von A bis Z und
die ASCII Sonderzeichen von 128 bis 254. Aber eben nicht den ASCII Code 27 (Taste ESC).
Obwohl merkwürdiger Weise hier zu entnehmen ist, dass es angeblich doch gehen soll:
Siehe fett gemachte Zeilen im Spoiler. Aber so geht es auch nicht. Ich habe es getestet!
=========== CHOICE (DOS 6.+) ======================= Lektion #19 ===
Seit MS-DOS Version 6.0 wird ein Hilfsprogramm mitgeliefert, das
in dieser oder ähnlicher Form (meist unter anderem Namen) bereits
seit etlichen Jahren im Umlauf ist: CHOICE ("Auswahl").
CHOICE hält den Ablauf an und wartet auf eine Tasten-Eingabe, wobei
die erlaubten Tasten im CHOICE-Befehl vorgegeben werden.
Entsprechend der gedrückten Taste kann dann per Errorlevel-Abfrage
verzweigt werden. Als Option gibt's die Möglichkeit, den Ablauf nach
nn Sekunden automatisch fortzusetzen.
Syntax -----------------------------------------------------------
CHOICE [/C[:]Tasten] [/N] [/S] [/T[:]c,nn] [Text]
/C[:]Tasten Angabe der zulässigen Tasten. Standard ist JN.
/N Keine Anzeige der zulässigen Tasten am Ende der
Eingabeaufforderung
/S Groß-/Kleinschreibung für Tasten wird beachtet.
/T[:]c,nn Nach nn Sekunden wird Standardauswahl c ausgeführt.
Text Eingabeaufforderung, die angezeigt wird.
ERRORLEVEL ist auf die Position (1...) der gedrückten Taste aus der
Tastenauswahl gesetzt.
------------------------------------------------------------------
Beispiel: CHOICE /C:JN weiter
if errorlevel 2 goto ENDE
DOS gibt folgenden Prompt aus:
weiter [J,N]?
^^^^^^-------- wird gem. /C Angaben eingesetzt
Da "J,N" Standard ist, kann in diesem Falle die Option /C auch
weggelassen werden. Je nach gedrückter Taste wird der Errorlevel
entsprechend der Position (1...) in der /C Option gesetzt. Mit "N"
wird also im obigen Beispiel Errorlevel 2 gesetzt.
Errorlevel 0 wird übrigens nie zurückgegeben.
Bei Syntax-Fehlern wird Errorlevel 255 zurückgegeben, und der Ablauf
wird ohne Pause fortgesetzt. Also: entweder zusätzlich Errorlevel
255 abfragen oder keine Fehler machen!
Weitere Erläuterungen:
/C[:]Tasten
Die Zahl der zugelassenen Tasten ist nicht begrenzt. Es können aber
nur ASCII-Zeichen als Tasten angegeben werden, ohne Trennzeichen
dazwischen. Beispiel:
CHOICE /C:NWA Nochmal, Weiter oder Abbrechen
Control-Codes sind möglich, wenn sie als Zeichen dargestellt werden
können, z.B. ESCAPE wie bei den ANSI-Sequenzen. ENTER und Leertaste
sind nicht verwendbar.
Text
Was nicht mit einem Schrägstrich beginnt, wird als Text (Prompt,
Eingabeaufforderung) auf dem Bildschirm ausgegeben. Der Text darf
in (doppelten) Anführungszeichen angegeben werden. In diesem Falle
sind auch Schrägstriche im Text erlaubt.
/N
Die zulässigen Zeichen in eckigen Klammern (plus Fragezeichen)
werden mit /N nicht automatisch im Prompt hinzugefügt. (Option /N
empfiehlt sich z.B. bei Verwendung von ESC.)
/T[:]c,nn
Nach nn Sekunden (maximal zweistellige Angabe!) wird automatisch
fortgesetzt. Die Angabe c ist ein Buchstabe aus der /C Option.
Nach Ablauf der Zeit wird der Errorlevel so gesetzt, als würde diese
Taste gedrückt. Beispiel:
CHOICE Weiter suchen /C:JN /T:N,5
(Hier kann die Option /C weggelassen werden, da JN Standard ist)
Menues
------
Mit ECHO-Zeilen kann zuvor ein Menü ausgegeben werden, z.B.:
echo 1 Mailer
echo 2 Editor
echo 3 Packer
echo 4 Terminal
echo.
choice Auswahl (Ziffer), ESC=Ende /C:1234# /N
:: hier ESC-Code (27) ----------------^
Durch zusätzliche Rahmen und ANSI-Farben läßt sich damit ein
ganz passables Bild produzieren. Auch der Text in der CHOICE-Zeile
darf ANSI-Sequenzen enthalten!
Quelle Thomas Antoni.
Seit MS-DOS Version 6.0 wird ein Hilfsprogramm mitgeliefert, das
in dieser oder ähnlicher Form (meist unter anderem Namen) bereits
seit etlichen Jahren im Umlauf ist: CHOICE ("Auswahl").
CHOICE hält den Ablauf an und wartet auf eine Tasten-Eingabe, wobei
die erlaubten Tasten im CHOICE-Befehl vorgegeben werden.
Entsprechend der gedrückten Taste kann dann per Errorlevel-Abfrage
verzweigt werden. Als Option gibt's die Möglichkeit, den Ablauf nach
nn Sekunden automatisch fortzusetzen.
Syntax -----------------------------------------------------------
CHOICE [/C[:]Tasten] [/N] [/S] [/T[:]c,nn] [Text]
/C[:]Tasten Angabe der zulässigen Tasten. Standard ist JN.
/N Keine Anzeige der zulässigen Tasten am Ende der
Eingabeaufforderung
/S Groß-/Kleinschreibung für Tasten wird beachtet.
/T[:]c,nn Nach nn Sekunden wird Standardauswahl c ausgeführt.
Text Eingabeaufforderung, die angezeigt wird.
ERRORLEVEL ist auf die Position (1...) der gedrückten Taste aus der
Tastenauswahl gesetzt.
------------------------------------------------------------------
Beispiel: CHOICE /C:JN weiter
if errorlevel 2 goto ENDE
DOS gibt folgenden Prompt aus:
weiter [J,N]?
^^^^^^-------- wird gem. /C Angaben eingesetzt
Da "J,N" Standard ist, kann in diesem Falle die Option /C auch
weggelassen werden. Je nach gedrückter Taste wird der Errorlevel
entsprechend der Position (1...) in der /C Option gesetzt. Mit "N"
wird also im obigen Beispiel Errorlevel 2 gesetzt.
Errorlevel 0 wird übrigens nie zurückgegeben.
Bei Syntax-Fehlern wird Errorlevel 255 zurückgegeben, und der Ablauf
wird ohne Pause fortgesetzt. Also: entweder zusätzlich Errorlevel
255 abfragen oder keine Fehler machen!
Weitere Erläuterungen:
/C[:]Tasten
Die Zahl der zugelassenen Tasten ist nicht begrenzt. Es können aber
nur ASCII-Zeichen als Tasten angegeben werden, ohne Trennzeichen
dazwischen. Beispiel:
CHOICE /C:NWA Nochmal, Weiter oder Abbrechen
Control-Codes sind möglich, wenn sie als Zeichen dargestellt werden
können, z.B. ESCAPE wie bei den ANSI-Sequenzen. ENTER und Leertaste
sind nicht verwendbar.
Text
Was nicht mit einem Schrägstrich beginnt, wird als Text (Prompt,
Eingabeaufforderung) auf dem Bildschirm ausgegeben. Der Text darf
in (doppelten) Anführungszeichen angegeben werden. In diesem Falle
sind auch Schrägstriche im Text erlaubt.
/N
Die zulässigen Zeichen in eckigen Klammern (plus Fragezeichen)
werden mit /N nicht automatisch im Prompt hinzugefügt. (Option /N
empfiehlt sich z.B. bei Verwendung von ESC.)
/T[:]c,nn
Nach nn Sekunden (maximal zweistellige Angabe!) wird automatisch
fortgesetzt. Die Angabe c ist ein Buchstabe aus der /C Option.
Nach Ablauf der Zeit wird der Errorlevel so gesetzt, als würde diese
Taste gedrückt. Beispiel:
CHOICE Weiter suchen /C:JN /T:N,5
(Hier kann die Option /C weggelassen werden, da JN Standard ist)
Menues
------
Mit ECHO-Zeilen kann zuvor ein Menü ausgegeben werden, z.B.:
echo 1 Mailer
echo 2 Editor
echo 3 Packer
echo 4 Terminal
echo.
choice Auswahl (Ziffer), ESC=Ende /C:1234# /N
:: hier ESC-Code (27) ----------------^
Durch zusätzliche Rahmen und ANSI-Farben läßt sich damit ein
ganz passables Bild produzieren. Auch der Text in der CHOICE-Zeile
darf ANSI-Sequenzen enthalten!
Quelle Thomas Antoni.
Nachteil bei der Pause >nul Funktion in Kombination mit der Keyin.exe ist halt,
dass man jede weitereführende Menü-Taste zweimal drücken muss. Und ja... auch die Taste ESC.
Ärgerlich
Es gibt keine 100%ige passende Möglichtkeit!
Weder die Choice.exe noch die Keyin.exe bieten eine zufriedenstellende Lösung.
Aber trotzdem haben beide .exe Dateien so Ihre Vorteile. Aber eben auch Nachteile.
Zuletzt bearbeitet: