Batch: Befehl in Intervall wiederholen

Hallo, ich möchte einen Befehl in einer Batch Datei in gewissen Abständen automatisch ausführen lassen, gibt es da einen befehl mit Angabe von Sekunden?
So was wie execute xx sekunden oder so?

Hilfe wäre nett.
Danke Gruß Elia

Hi Elia,

ich möchte einen Befehl in einer Batch Datei in
gewissen Abständen automatisch ausführen lassen, gibt es da
einen befehl mit Angabe von Sekunden?
So was wie execute xx sekunden oder so?

Am besten machst Du dafür einen Loop mit Goto und dazwischen eine Pause. Eine Pause zu machen ist dann das Problem. Normalerweise ginge das mit CHOICE, ich weiß deine Win-Version nicht. Wenn Du CHOICE.COM auf deinem System hast, dann funktioniert folgendes:

TYPE NUL | CHOICE.COM /N /CY /TY,10 \>NUL

Macht eine Pause von 10 Sekunden.

Wenn Du Windows XP hast oder Choice.com auf deinem System nicht vorhanden ist, kannst Du das tool Sleep.exe von http://www.computerhope.com/dutil.htm nutzen. Downloaden, in den Windows-Ordner oder den Ordner der Batchdatei kopieren.
Aufrufen mit z.B.

sleep 10

um eine Pause von 10 Sekunden zu starten.

Beispiel für eine Umsetzung:

:loop

 sleep 10
goto loop

Abbrechen musst Du den Vorgang dann mit Strg+C, wenn Du keine Abbruchmöglichkeit einbaust.

Schönen Gruß,
Rudy

Hallo Rudy, vielen Dank für deinen Tipp, es klappt!
Hast du auch noch inen befehl mit dem ich die gante Batch-Datei stoppen kann ohne Nachfrage per Mausklick?
Wäre nett!
Vielen Dank!
Gruß Elia

Hi Elia,

Hast du auch noch inen befehl mit dem ich die gante
Batch-Datei stoppen kann ohne Nachfrage per Mausklick?

Ja, das kannst Du unter Windows XP über die Registrierung machen. Du erstellst Dir am Anfang der Datei mit dem Loop (start.bat) einen Registrierungsschlüssel und überprüfst dann im Loop ob er existiert.
Eine andere Batch-Datei (stop.bat) löscht den Schlüssel, sodass start.bat beim nächsten Durchlauf aus der Schleife springt.

Die Datei zum Start des zyklischen Aufrufs:

(start.bat)

 @echo off
 reg add HKEY\_LOCAL\_MACHINE\SOFTWARE\MyLoop /v run /d 1 /f
 :loop
 reg query HKEY\_LOCAL\_MACHINE\SOFTWARE\MyLoop
 if errorlevel 1 goto end
 echo "befehl"
 sleep 10
 goto loop

 :end
 pause 

Und zum Stoppen reicht dann ein Klick bzw. der Aufruf von folgender Batch:

(stop.bat)

 @echo off
 reg delete HKEY\_LOCAL\_MACHINE\SOFTWARE\MyLoop /f

Schönen Gruß,
Rudy

Hallo Rudy,

es klappt zwar allerdings bekomme ich diese Meldung beim stoppen

Fehler: Der angegebene Registrierungsschlüssel oder Wert konnte nicht gefunden werden.
Drücken Sie eine beliebige Taste . . .

kann man diese Meldung unterdrücken so daß ich auch keine Taste noch drücken muß zur Bestätigung?

Nette Grüße Elia

Hi Elia,

es klappt zwar allerdings bekomme ich diese Meldung beim
stoppen

Fehler: Der angegebene Registrierungsschlüssel oder Wert
konnte nicht gefunden werden.
Drücken Sie eine beliebige Taste . . .

Was hast Du für eine Win-Version? Bei mir (WinXP SP2) beendet die Batch immer - auch wenn sie aufgerufen wird, wenn der Registrierungsschlüssel bereits nicht mehr existiert. Die Bestätigung wird mit dem Parameter /f übergangen. Während des Loops muss der Registrierungsschlüssel immer vorhanden sein. Infos zum Befehl ‚reg‘ liefert cmd selbst, ruf einfach ‚reg /?‘ in der Dos-Box auf.

Schönen Gruß,
Rudy

Hi Rudy, es klappt jetzt.
Ich habe das PAUSE entfernt jetzt schließt die Box ich habe XP SP1.
Vielen Dank für deine Hilfe, damit kann ich nun viel anfangen, danke!
Nette Grüße Elia

Hi Elia,

Hi Rudy, es klappt jetzt.
Ich habe das PAUSE entfernt jetzt schließt die Box ich habe XP
SP1.

Ach Du meintest die erste Batch-Datei… *g* dachte die zweite würde nicht schließen. Na Du hast es ja rausgefunden, Hauptsache es geht nun :wink:

Schönen Gruß,
Rudy

Große Post. Danke fürs Teilen.
Beste,
Olivia bei http://www.ampronix.com/