Batch script Zähler Dateinamen
Hallo zusammen.
Nach ca 8 Std probieren bin ich am Ende
Ich ziehe täglich mit einem Batch-Script per ftp eine Datei vom Server in einen Logfiles-ordner (kein Problem soweit).
Die Logfiles sollen nicht überschrieben werden.
D.h.: Die erste Datei Log.txt soll in Alt_Log1.txt umbenannt werden.
Am nächsten Tag kommt erneut eine Log.txt da rein.
Die Alt_Log1.txt soll nun ins Alt_Log2.txt umbenannt werden und die Log.txt ins Alt_Log1.txt
oder wäre es nicht einfacher die neue Log.txt sofort ins Alt_log2.txt usw.?
Habe es bereits mit Abfragen:
if exists Alt_log1.txt ren Log.txt Alt_log2.txt probiert
aber da ist kein zähler / variable für Alt_log2.txt in ....log3.txt usw.
Wie kann ich also abfragen welche Datei (höhste Zahl) ist, damit ich die täglich neue Log.txt in Alt_log_xxx+1 ändern kann?
ich hoffe es ist verständlich erklärt.
Danke und VG
Nach ca 8 Std probieren bin ich am Ende
Ich ziehe täglich mit einem Batch-Script per ftp eine Datei vom Server in einen Logfiles-ordner (kein Problem soweit).
Die Logfiles sollen nicht überschrieben werden.
D.h.: Die erste Datei Log.txt soll in Alt_Log1.txt umbenannt werden.
Am nächsten Tag kommt erneut eine Log.txt da rein.
Die Alt_Log1.txt soll nun ins Alt_Log2.txt umbenannt werden und die Log.txt ins Alt_Log1.txt
oder wäre es nicht einfacher die neue Log.txt sofort ins Alt_log2.txt usw.?
Habe es bereits mit Abfragen:
if exists Alt_log1.txt ren Log.txt Alt_log2.txt probiert
aber da ist kein zähler / variable für Alt_log2.txt in ....log3.txt usw.
Wie kann ich also abfragen welche Datei (höhste Zahl) ist, damit ich die täglich neue Log.txt in Alt_log_xxx+1 ändern kann?
ich hoffe es ist verständlich erklärt.
Danke und VG
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator Biber am 01.06.2011 um 06:33:22 Uhr
Verschoben von "Entwicklung" nach "Batch & Shell".
Content-ID: 167293
Url: https://administrator.de/forum/batch-script-zaehler-dateinamen-167293.html
Ausgedruckt am: 19.04.2025 um 08:04 Uhr
7 Kommentare
Neuester Kommentar
Kurz und knackig:
Ist das ungefähr nach deinen Vorstellungen?
Ich denke, das Einbauen in dein jetziges Batch ist nicht allzu schwierig...
Gruß
Dominique
[EDIT]

Naja, man gibt sein Bestes
for /L %%X in (0,1,100) DO echo %%X
Ausgabe:
0
1
2
3
...
100
REM Oder:
Set Hatzelknatzel=1
Set /A hatzelknatzel=%hatzelknatzel%+1
Auch hier wird hochgezählt. Aus dem Dateinamen kannst du theoretisch die Zahl herausziehen und dann %Zahlenname%+1 rechnen.
Ist das ungefähr nach deinen Vorstellungen?
Ich denke, das Einbauen in dein jetziges Batch ist nicht allzu schwierig...
Gruß
Dominique
[EDIT]
Zitat von @bastla:
Hallo zbyszek und willkommen im Forum!
Eigentlich sollte es ja genügen, die neueste Datei zu suchen:
Wie Du dann an die Nummer kommst, scheinst Du ja schon zu wissen ...
Grüße
bastla
Da macht man sich mal gemütlich auf den Pott und schon kommt wieder jemand, der einem zeigt, dass man eigentlich nichts kann Hallo zbyszek und willkommen im Forum!
Eigentlich sollte es ja genügen, die neueste Datei zu suchen:
for /f "delims=" %%i in ('dir /b /a-d /od Alt_log_*.txt') do set
> "Neueste=%%i"
>
Grüße
bastla
Naja, man gibt sein Bestes
Hallo,
versuchs mal hiermit:
-Ungetestet
MfG,
Mathe172
[Edit: War wohl etwas spät...]
versuchs mal hiermit:
setlocal enabledelayedexpansion
pushd "C:/Logs/"
for /f "tokens=2 delims=g." %%A in ('dir /b /o:d "Alt_Log*.txt"') do if not defined LastFile set "LastFile=%%A"
for /l %%A in (%LastFile%,-1,1) do (
set /a "FileNumber=%%A + 1"
ren Alt_Log%%A.txt Alt_Log!FileNumber!.txt
)
ren Log.txt Alt_Log.txt
popd
MfG,
Mathe172
[Edit: War wohl etwas spät...]