INKEY.DEB wartet genau wie ASK, bis eine Taste gedrückt wird, liefert jedoch den Errorlevel 0, falls das eingebene Zeichen nicht im Parameter vorkommt. Das Programm kehrt also nach der ersten gedrückten Taste auf die Systemebene zurück, während dies bei ASK erst bei erfolgreichem Vergleich mit den Zeichen im Parameter geschieht. Das eingegebene Zeichen erscheint genau wie bei ASK zur Kontrolle auf dem Bildschirm und läßt sich mit » >NUL« ins Nichts umleiten. Ist der Errorlevel 0, wurde die gedrückte Taste also nicht erwartet, unterläßt INKEY jedoch die Ausgabe des eingegebenen Zeichens. Das ermöglicht es Ihnen, auf einfache Weise Abfragen des Typs »Weiter mit W, Abbruch mit jeder anderen Taste…« zu realisieren. Der folgende Stapeljob zeigt Ihnen, wie das geht:
@ECHO OFF ECHO Weiter mit W, Abbruch mit jeder anderen Taste... INKEY Ww >NUL IF ERRORLEVEL NOT = ! GOTO ENDE ECHO Beliebige Anweisungen... :ENDE
Name: | INKEY.DEB |
Funktion: | Wartet bis eine beliebige Taste gedrückt wird. |
Übersetzung: | DEBUG <INKEY.DEB |
Prüfsumme: | 39A0 |
Anwendung: | INKEY …IF ERRORLEVEL # … = Liste von Zeichen, die akzeptiert werden sollen # = 0: Die gedrückte Taste steht nicht in der Liste.
andere Werte: Position des Zeichens in der Liste. |
Einschränkungen: | ./. |
A MOV AH,8 ;100 INT 21 ;102 MOV AH,8 ;104 XOR BX,BX ;106 CMP AL,0 ;108 JZ 11F ;10A MOV BL,[80] ;10C SUB BL,1 ;110 JBE 121 ;113 CMP AL,[BX+81] ;115 JNZ 110 ;119 MOV DL,AL ;11B MOV AH,2 ;11D INT 21 ;11F LEA AX,[BX+4C00] ;121 INT 21 ;125 RCX 27 NINKEY.COM W Q
Quelle: 200 Utilities für PC-/MS-DOS von Gerhard Schild und Thomas Jannot