wieseloh
Goto Top

Bei jedem fünften Start eine zusätzliche Zeile ausführen lassen?

Hallo,
ich habe eine Batch-Datei, die ich gerne etwas abändern möchte.
Leider kenne ich mich damit nicht so gut aus und möchte mich bei euch erkundigen, ob ihr dafür vielleicht eine Lösung kennt.

Und zwar soll eine Batch-Datei bei jedem fünften Start, eine zusätzliche Scriptzeile ausführen.

An eine Schleife habe ich schon gedacht...
Aber das funktioniert ja nicht, weil die Batch zu unterschiedlichen Zeiten neu gestartet wird.


Hättet ihr vielleicht eine Idee?

Gruß
WieselOh

Content-Key: 114164

Url: https://administrator.de/contentid/114164

Printed on: April 19, 2024 at 04:04 o'clock

Member: ITLocke
ITLocke Apr 18, 2009 at 13:22:21 (UTC)
Goto Top
Hi,

ich bin zwar auch nicht so bewandert, was Batch-Dateien angeht,
aber ich würde mir einen Counter aus einer Datei einlesen und falls er kleiner 5 ist ihn hochzählen.
Wenn er dann 5 ist, führst du deine zusätzliche Zeile aus und setzt den Counter einfach wieder auf null.
Hoffe es ist hilfreich.

Gruß Locke
Member: WieselOh
WieselOh Apr 18, 2009 at 13:45:37 (UTC)
Goto Top
Dankeschön ITLocke.
Ich habe mal danach gegoogelt und etwas brauchbares gefunden *glaube ich*.

rem - Script-Anfang: Erstellt die Counter-Datei
if not exist "counter.txt" set /a counter=0  
for /f %%i in (counter.txt) do set /a counter=%%i

- Mein Script -

rem - Script-Ende: Erhoet den Counter um 1 und setzt ihn bei 5 zurueck
set /a counter=counter+1
if %counter%==5 set /a counter=0
echo %counter% > counter.txt

Aber was mir nicht ganz klar ist, wie verküpfe ich das mit der zusätzlichen Zeile?
Gibt es einen Befehl in der art:
if %counter%==1,2,3,4 goto weiter
- Zusätzliche Script-Zeile -
:weiter
Und dadurch soll die Zeile einfach übersprungen werden.
Ist sowas möglich oder ist etwas anderes empfehlenswert?


Gruß
WieselOh
Member: bastla
bastla Apr 18, 2009 at 13:55:33 (UTC)
Goto Top
Hallo WieselOh und willkommen im Forum, hallo ITLocke!

Die Umsetzung des Vorschlages (dem ich mich anschließe) von ITLocke könnte so erfolgen:
@echo off & setlocal
set "Counter=D:\Counter.txt"  

if exist "%Counter%" (  
    set /p Count=<"%Counter%"  
) else (
    set Count=0
)
set /a Count+=1
if %Count% gtr 4 set Count=0
>"%Counter%" echo %Count%  

if %Count%==1 echo Zeile wird ausgefuehrt ...
Als alternative Formulierung (zum Überspringen der zusätzlichen Zeile) käme in Frage:
if %Count% neq 1 goto :Weiter
echo Zeile wird ausgefuehrt ...
:Weiter

Grüße
bastla

[Edit] So langsam habe ich ja schon lange nicht geschrieben ... face-wink [/Edit]
Member: WieselOh
WieselOh Apr 18, 2009 at 15:14:38 (UTC)
Goto Top
Aller besten Dank!
Das Script funktioniert super und ich bin total happy face-smile


Gruß
WieselOh