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

 

EingabeaufforderungOptionaler Text, der als Eingabeaufforderung angezeigt wird.
VarnameDie Variable, die den Tastendruck des Benutzers speichert.
wartenZeit, auf einen Tastendruck zu warten Sekunden

 

/C

Puffer löschen

/P

Passwort

/D

Ziffern nur

/T

Countdown-Timer

/K

gültige Tastenanschläge

/W

Wartezeit

/M

Maustasten

/X

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:

 

/=Zeigen Sie das INKEY-Befehlsdialogfeld an, das Ihnen beim Festlegen der Befehlszeilenoptionen hilft. Die Option /= kann an einer beliebigen Stelle in der Zeile stehen; Zusätzliche Optionen legen die entsprechenden Felder im Befehlsdialog fest.

 

/CLöscht den Tastaturpuffer, bevor INKEY Tastenanschläge akzeptiert. Wenn Sie diese Option verwenden, ignoriert INKEY alle Tastenanschläge, die Sie versehentlich oder absichtlich eingeben, bevor es bereit ist, Eingaben anzunehmen. Sie können die Option /C allein verwenden, wenn Sie den Tastaturpuffer löschen möchten, ohne eine Variable festzulegen.

 

/DAkzeptieren Sie nur Nummern von 0 zu 9.

 

/K"Tasten"Gibt die zulässigen Tastenanschläge an. Die Liste der gültigen Tastenanschläge sollte in doppelte Anführungszeichen gesetzt werden. Bei alphabetischen Schlüsseln unterscheidet der Gültigkeitstest nicht zwischen Groß- und Kleinschreibung. Sie können erweiterte Schlüssel angeben, indem Sie deren Namen in eckige Klammern (innerhalb der Anführungszeichen) setzen, zum Beispiel:

 

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.

 

/MAkzeptieren Sie Maustastenklicks. Das ist z.BNur aktiviert, wenn die Schnellbearbeitung von Windows deaktiviert ist (Alt-Leertaste -> Eigenschaften -> Optionen).

 

/PVerhindert, dass INKEY das Zeichen wiedergibt.

 

/TEinen Countdown-Timer anzeigen (/Wn ist ebenfalls erforderlich).

 

/WTimeout-Zeitraum in Sekunden, um auf eine Antwort zu warten. Wenn bis zum Ende des Timeout-Zeitraums kein Tastendruck erfolgt, kehrt INKEY mit unveränderter Variable zurück. Dadurch können Sie die Batchdatei fortsetzen, wenn der Benutzer nicht innerhalb einer bestimmten Zeitspanne antwortet. Sie können angeben / W0 um sofort zurückzukehren, wenn keine Tasten im Tastaturpuffer warten. If /W angegeben ist, werden Maustasten ignoriert.

 

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

 

/XVerhindert, dass INKEY nach der Benutzereingabe einen Wagenrücklauf und einen Zeilenvorschub anzeigt.