Hi Batchfans
... Nach dem x-ten Mal durchlaufen wird der Batch abgebrochen (ich weiss nicht, wie man in einer Batchdatei eine Variable definieren kann, wenn überhaupt, habe auch nichts gefunden.) ...
bedingte Schleife
Bsp. 1 - ein einzelner Befehl
rem ---
rem batch befehle
rem code zeilen ...
rem ---
:loop
for %%i in (1 2 3 4 5 6 7 8 9 10) do Befehl mit Parametern
rem ---
rem batch befehle
rem code zeilen ...
rem ---
Bsp. 2 - eine Befehlsgruppe - feste Schleifenzahl
rem ---
rem batch befehle
rem code zeilen ...
rem ---
set count=
:loop
rem ---
rem hier die zu wiederholenden
rem code zeilen eingeben
rem ---
set count=%count%x
if not /%count% == /xxxxx goto loop
:end_loop
rem ---
rem batch befehle
rem code zeilen ...
rem ---
:ende
set counter=
in diesem Bsp. wird die Schleife 5 mal durchlaufen - 5 x in der if Abfrage
bei 6 x 6 mal, bei 10 x 10 mal, etc.
die xxx in der if-Abfrage können auch durch eine Variable %1 ersetzt werden, um dem Batch per Parameter-übergabe bei Aufruf eine flexible Anzahl Wiederholungen zu ermöglichen ...
/ in Vergleichsabfragen nicht vergessen ! Leer-Variable führen in Vergleichen sonst zu Batch-Abbrüchen !
viele weitere Schleifen-Konstrukte nach Hochsprachen-Vorbild sind möglich.
... Schleife einmal durchlaufen > errorlevel ist grösser 0, warte 2-3 Sec - dann laufe die Schleife wieder durch (einen wait oder delay oder timout Befehl für Batchdateien habe ich nicht gefunden) ...
Batch für x Sekunden anhalten
Bsp. 10 Sekunden
@echo off
rem ---
rem batch befehle
rem code zeilen ...
rem ---
choice.com /c:jn /t:j,10 > NUL
oder
choice.com /c:jn /t:j,10 /n ÿ Beispiel text - weiter mit j ÿ
rem /c:xy - erlaubte antworten
rem /t - antwort vorgabe und wartezeit vorgabe
rem /n - vorgegebene text meldung ausgeben
rem 1. Beispiel -
rem da hier keine echte Abfrage / Auswahl vorgenommen werden soll
rem wird weder ein Abfragetext noch eine Standardmeldung ausgegeben
rem (Umleitung ins 'Nirvana'

)
rem 2. Beispiel -
rem hier wird eine Meldung ausgegeben,
rem die z.B. darauf hinweist, das es möglich ist,
rem mit Tastendruck auf j vorzeitig in der Abarbeitung fortzufahren ...
rem ---
rem batch befehle
rem code zeilen ...
rem ---
:ende
statt eine Zahl für die zu wartenden Sekunden fest vorzugeben, kann natürlich auch eine Variable %1 verwendet werden, um dem Batch bei Aufruf einen Wert zu übergeben ...
Der 'Wartebefehl' ließe sich auch in eine separate Batch ausgliedern und könnte dann variabel von verschiedenen anderen Batch-Anwendungen per CALL-Befehl aufgerufen werden ...
cu
m,-