DELAY.DEB verzögert die Ausführung eines Stapeljobs um eine beliebige Anzahl von Sekunden, die Sie als Parameter angeben können. Nach Ablauf der Zeit, setzt es den Errorlevel auf 0. Betätigen Sie hingegen in der Zwischenzeit eine Taste, können Sie den weiteren Ablauf der Stapeldatei beeinflußen, da der Errorlevel dann 255 beträgt. Ein typisches Anwendungsbeispiel, das sich bei uns bewährt hat, ist der folgende Ausschnitt aus einer AUTOEXEC.BAT:
@ECHO OFF ECHO Wenn kein Viren-Checker starten soll, jetzt eine Taste drücken! DELAY 5 IF ERRORLEVEL 1 GOTO ENDE ECHO Ein beliebiger Viren-Checker startet... :ENDE
Dieser Abschnitt sorgt zum Beispiel dafür, daß nach Ablauf von 5 Sekunden Verzögerung automatisch ein Viren-Checker gestartet wird. Natürlich könnte danach ein »DISKTEST« oder »CHKDSK« folgen, was nicht immer unbedingt notwendig ist, von Zeit zu Zeit jedoch nützlich sein kann. Schaltet der Benutzer nun den PC ein, ohne gleich daran arbeiten zu wollen, werden diese Programme selbständig ausgeführt – der PC ist erstmal beschäftigt. Normalerweise löscht DELAY den Tastaturpuffer, sodaß Sie eine beliebige Taste zum Abbrechen des Programmes betätigen können, ohne daß diese anschließend eine Funktion auslöst. Ist jedoch bereits beim Start von DELAY der Tastaturpuffer gefüllt, bleibt sein Inhalt erhalten und das Programm bricht sofort ab.
Name: | DELAY.DEB |
Funktion: | Wartet eine gewünschte Zeitdauer auf einen beliebigen Tastendruck. |
Übersetzung: | DEBUG <DELAY.DEB |
Prüfsumme: | 16C6 |
Anwendung: | DELAY zif errorlevel # z = Zeitdauer in Sekunden # = 0, wenn bis zum Ablauf der Zeit keine Taste gedrückt wurde
# = 255 wenn eine Taste gedrückt wurde |
Einschränkungen: | ./. |
A CALL 136 ;100 JNZ 132 ;103 MOV SI,82 ;105 XOR AX,AX ;108 AAD ;10A MOV AH,AL ;10C MOV AL,[SI] ;10E INC SI ;110 SUB AL,30 ;111 JNB 10A ;113 MOV AL,12 ;115 MUL AH ;117 MOV CX,AX ;119 POP DS ;11B MOV BX,[46C] ;11C CMP BX,[46C] ;120 JZ 120 ;124 CALL 136 ;126 LOOPZ 11C ;129 PUSH AX ;12B MOV AX,C00 ;12C INT 21 ;12F POP AX ;131 MOV AH,4C ;132 INT 21 ;134 MOV AH,B ;136 INT 21 ;138 CMP AL,0 ;13A RET ;13C RCX 3D NDELAY.COM W Q
Quelle: 200 Utilities für PC-/MS-DOS von Gerhard Schild und Thomas Jannot