Veröffentlicht 15. August 200322 j Servus, also ich bastel gerade eine Batch-Datei zusammen, welche die Uhrzeit automatisch auf einen bestimmten Tag stellt. Soweit so gut, aber habe ein kleines Problem mit dem Befehl <Pause>, ich brauche eigentlich nur eine Verzögerung von 3-4 Sekunden und keinen, wo ich ständig eine Taste drücken muss, um weiter zu kommen... Hat jmd. einen Plan, wie man das schreiben kann??? Oder kennt jmd. informative Seiten zu Batch-Befehlen??? Danke CU Enni:confused:
15. August 200322 j hallo ich bin wahrscheinlich auch nicht versierter als du mit batch programmierung. aber mir schwirrt da noch "sleep " im kopf rum. syntax weiss ich jetzt auch nicht genau aber irgendwie so sleep(3) sleep 3 genau hoffe das hilft dir ciao r # # t
15. August 200322 j sleep ist aber soweit ich das im kopf hab nicht std bei dos/windows dabei ist glaub ich nur im res pack enthalten. oder schau mal dort http://www.simtel.iif.hu/pub/msdos/batchutl/ nach! gruss go4nager
15. August 200322 j Um eine Pause zu machen kannst Du doch auch einfach eine Schleife programmieren, in der ein Wert hochgezählt wird.
15. August 200322 j Original geschrieben von schnerd Um eine Pause zu machen kannst Du doch auch einfach eine Schleife programmieren, in der ein Wert hochgezählt wird. Das mach mal unter DOS! Nein, das ist kompliziert. Ich hatte jetzt spontan die Idee, eine kleine exe in einer beliebigen Sprache schreiben mit Parameterübergabe der gewünschten Zeit. Die startest Du dann mit dem Befehl call. unter Turbopascal ist es delay(), C++ ist es usleep usw.
15. August 200322 j Das hab ich früher schon mal gepostet: '''''''''''''''''''''''''''''''''''''''''''' Hi ein beliebter Trick ist folgender: ping -n 61 localhost > NUL Das Pingt den eigenen Rechner 61 mal an. Ein Ping dauert ungefähr eine Sekunde. Das ganze braucht kaum Resource. Um die Anzeige zu unterdrücken, wird sie auf NUL umgeleitet. Hoffe es hilft ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Statt 61 setze die Anzahl der Sekunden ein die du warten willst.
16. August 200322 j Speichere dir folgenden Code in eine Textdatei namens warte.asm: ------------------------------------------------------------------------------------- A pushf ; Flagregister, push di ; Datenindex und push si ; Stackindex sichern mov bx,[005D] ; Dosparameter einlesen cmp bl,30 ; je 153 ; Wenn = 0, Warte auf Taste jb 158 ; Wenn < 0 ungÂltig, Abbruch cmp bl,3A ; jnb 158 ; Wenn > 9 ungÂltig Abbruch And bl,0F ; Hohes Halbbyte filtern ( Hex 35 zum Hex 05 ) Mov bh,0 ; Highbyte löschen mov ax,2c00 ; int 21 ; Funktion 2C liest die Uhrzeit mov ax,dx ; Sekunden & Hunderstel sichern add ah,bl ; Dauer (DOS-Parameter) zu Sekunden addieren mov bx,cx ; Stunden & Minuten sichern cmp ah,3b ; jle 13e ; Wenn Sekunden <= 59 ist Zeit korrekt sub ah,3c ; Sonst 60 abziehen add bl,1 ; Minuten um 1 erhâ€hen cmp bl,3b ; jle 13e ; Wenn Minuten <= 60 ist Zeit korrekt sub bl,3c ; Sonst 60 abziehen add bh,1 ; Stunden um 1 erhâ€hen cmp bh,18 ; je 103 ; Datumswechsel ! Neu anfangen mov di,ax ; mov si,bx ; Endzeit sichern (HHMM in SI, SSHH in DI) mov ax,2c00 int 21 ; Aktuelle Zeit holen cmp si,cx JB 158 ; Std/Min Endzeit < Zeit, Abbruch JA 142 ; cmp di,dx jna 158 jmp 142 mov AX,0C08 int 21 pop si pop di popf int 20 rcx 5D n warte.com w q ------------------------------------------------------------------------------------- Danach hast du im aktuellen Verteichnis ein Mini-Progrämmchen namens warte.com (93 Byte), das deine Aufgabe lösen sollte. Einfach in der Batchdatei an der richtigen Stelle die Zeile "warte 5" eingeben, wenn du 5 Sekunden verzögern willst. hth Reinhold
19. August 200322 j Hoppla, da war doch noch was: Wenn du den Code in eine Textdatei speicherst hast du natürlich noch kein Programm. Bitte noch aus der Eingabeaufforderung ausführen: debug < warte.asm Sorry Reinhold
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.