Masterenni Geschrieben 15. August 2003 Geschrieben 15. August 2003 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: Zitieren
root@localhost Geschrieben 15. August 2003 Geschrieben 15. August 2003 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 Zitieren
Masterenni Geschrieben 15. August 2003 Autor Geschrieben 15. August 2003 Leider nicht, der Befehl "sleep" funktst auch net... schade, trotzdem danke!!! Zitieren
Go4Nager Geschrieben 15. August 2003 Geschrieben 15. August 2003 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 Zitieren
schnerd Geschrieben 15. August 2003 Geschrieben 15. August 2003 Um eine Pause zu machen kannst Du doch auch einfach eine Schleife programmieren, in der ein Wert hochgezählt wird. Zitieren
U-- °LoneWolf° Geschrieben 15. August 2003 Geschrieben 15. August 2003 Wozu brauchst du die pause???? Zitieren
Hodata Geschrieben 15. August 2003 Geschrieben 15. August 2003 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. Zitieren
maxim_42 Geschrieben 15. August 2003 Geschrieben 15. August 2003 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. Zitieren
Reinhold Geschrieben 16. August 2003 Geschrieben 16. August 2003 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 Zitieren
Reinhold Geschrieben 19. August 2003 Geschrieben 19. August 2003 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 Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.