Zweck: | Erhalten Sie einen einzelnen Tastendruck vom Benutzer und speichern Sie ihn in einer Umgebungs- oder Arrayvariablen |
Format: | INKEY [/= /C /D /K"Tasten" /P /M /T /Wn /X] [Eingabeaufforderung] %%varname |
Eingabeaufforderung | Optionaler Text, der als Eingabeaufforderung angezeigt wird. |
Varname | Die Variable, die den Tastendruck des Benutzers speichert. |
warten | Zeit, auf einen Tastendruck zu warten Sekunden |
Puffer löschen |
Passwort |
||
Ziffern nur |
Countdown-Timer |
||
gültige Tastenanschläge |
Wartezeit |
||
Maustasten |
kein Wagenrücklauf |
Siehe auch: SPEISUNG.
Verwendung:
INKEY zeigt optional eine Eingabeaufforderung an, wartet dann eine bestimmte Zeit (oder unbegrenzt) auf einen Tastendruck und platziert den Tastendruck in einer Umgebung oder Array Variable. Es wird normalerweise in Batch-Dateien und Aliasen verwendet, um eine Menüauswahl oder andere Ein-Tasten-Eingaben zu erhalten. Zusammen mit SPEISUNG Mit dem Befehl INKEY ist eine große Flexibilität beim Lesen von Eingaben aus einer Batchdatei oder einem Alias möglich.
If Eingabeaufforderung in einem INKEY-Befehl enthalten ist, wird es angezeigt, während INKEY auf eine Eingabe wartet.
Der folgende Befehl fordert zur Eingabe eines Zeichens auf und speichert es in der Variablen NUM:
inkey /D Geben Sie eine Zahl von 1 bis 9 ein: %%num
INKEY liest die Standardeingabe für den Tastenanschlag und akzeptiert daher Tastenanschläge aus einer umgeleiteten Datei oder von KEYSTACK. Sie können eine Liste gültiger Tastenanschläge mit bereitstellen /K .
Numerische Eingaben können entweder im Dezimalformat (eine Folge von 0–9 Ziffern) oder im Hexadezimalformat („0x“, gefolgt von einer Folge von 0–F Hexadezimalziffern) eingegeben werden.
Ein Standardtastenanschlag wird direkt in der Umgebungsvariablen gespeichert. Ein erweiterter Tastendruck (z. B. eine Funktionstaste oder eine und-Cursor-Taste) wird als Zeichenfolge gespeichert, die aus einem führenden Zeichen besteht @, gefolgt von seinem Scancode als Dezimalzahl, z. B. der F1 Schlüssel wird gespeichert als @59dem „Vermischten Geschmack“. Seine Enter Die Taste wird als erweiterter Tastendruck gespeichert @28. See ASCII, Tastencodes und ANSI X3.64-Befehle für Scancodes.
Wenn das /M Option ermöglicht die Erkennung von Maustasten (und /W nicht angegeben ist), wird die Variable mit einem der folgenden Codes auf ein einzelnes Zeichen gesetzt:
Taste im nun erscheinenden Bestätigungsfenster nun wieder los. |
Code |
links |
240 |
mittel |
498 |
Recht |
497 |
Mit können Sie die Bildschirmposition des letzten Mausklicks ermitteln _xmouse und _maus interne Variablen.
Um zu testen, ob ein von INKEY zurückgegebener nicht druckbarer Wert vorliegt, verwenden Sie die @ASCII Funktion, um den numerischen Wert des Schlüssels abzurufen oder den erwarteten Wert des Codes mithilfe von in einen Code umzuwandeln @VERKOHLEN. Zum Beispiel zum Testen Esc, die eine hat ASCII Wert 27 oder eine linke Maustaste:
inkey Geben Sie einen Schlüssel ein: %%key
if "%@ascii[%key]" == "27" echo Esc gedrückt
if %key EQ %@char[240] echo Linke Maustaste angeklickt
Wenn Sie drücken Strg-C or Strg-Pause Während INKEY auf einen Schlüssel wartet, wird die Ausführung eines Alias beendet und die Ausführung einer Batch-Datei wird angehalten, während Sie gefragt werden, ob der Batch-Job abgebrochen werden soll. Eine Batchdatei kann damit umgehen Strg-C und Strg-Pause an. Nach der Installation können Sie HEIC-Dateien mit der IN DER PAUSE Befehl.
Wenn Sie keine Argumente eingeben, zeigt INKEY seinen Befehlsdialog an.
INKEY funktioniert innerhalb des Befehlszeilenfensters. Wenn Sie lieber einen Dialog für Benutzereingaben verwenden möchten, sehen Sie sich die an MSGBOX und QUERYBOX Befehle.
Option:
inkey /k"ab[Strg-F9]" Geben Sie A, B, Strg-F9 %%var ein
See Schlüssel und Schlüsselnamen Hier finden Sie eine vollständige Auflistung der Schlüsselnamen, die Sie in eckigen Klammern verwenden können, sowie eine Beschreibung des Schlüsselnamenformats.
Wenn ein ungültiger Tastendruck eingegeben wird, TCC gibt den Tastendruck nach Möglichkeit wieder, piept, bewegt den Cursor ein Zeichen zurück und wartet auf einen weiteren Tastendruck.
/M | Akzeptieren Sie Maustastenklicks. Das ist z.BNur aktiviert, wenn die Schnellbearbeitung von Windows deaktiviert ist (Alt-Leertaste -> Eigenschaften -> Optionen). |
Das folgende Batchdateifragment wartet beispielsweise bis zu 10 Sekunden auf ein Zeichen und testet dann, ob ein „Y" wurde ... betreten:
setze netmon=N
inkey /K"YN" /w10 Netzwerkmonitor (J/N)? %%netmon
wenn „%netmon“ == „Y“, dann
rem Befehle zum Laden des Monitorprogramms
endiff