Zähler in einer Batch
Hallo,
ich habe ein kleines Problem mit einer Batchdatei.
Ich bin dabei für ein Backupprogramm eine batchdatei zu schreiben, die alle 30 min. ein inkrementelles Backup anstösst.
Es funktioniert soweit auch alles, aber das einzige Problem, dass ich noch habe und irgendwie nicht gelöst bekomme ist der Zähler.
Mit Hilfe des Zählers, werden die Backupdateien benannt.
z.B. Backup.001, Backup.002, Backup.003 ...
Die Zahl holt er sich aus einer externen Datei und soll sie dann immer wieder nach dem Backup um 1 erhöhen und in die Datei schreiben.
Das funktioniert auch soweit.
Mein eigentliches Problem ist nun, dass er dies nicht mit den beiden vorangestellten 00 machen kann.
Er zählt hoch, aber schmeisst die 00 weg und zählt dann wieder nur mit 1 Stelle.
Hier ist mal der Code vom Zähler:
Weiß da jemand Rat, ob das überhaupt möglich ist ?
Vielen Dank
Ps.: Das hier ist natürlich nur ein Teil der Batch. Hier zählt er einfach nur und gibt mir die Zahl aus :D
ich habe ein kleines Problem mit einer Batchdatei.
Ich bin dabei für ein Backupprogramm eine batchdatei zu schreiben, die alle 30 min. ein inkrementelles Backup anstösst.
Es funktioniert soweit auch alles, aber das einzige Problem, dass ich noch habe und irgendwie nicht gelöst bekomme ist der Zähler.
Mit Hilfe des Zählers, werden die Backupdateien benannt.
z.B. Backup.001, Backup.002, Backup.003 ...
Die Zahl holt er sich aus einer externen Datei und soll sie dann immer wieder nach dem Backup um 1 erhöhen und in die Datei schreiben.
Das funktioniert auch soweit.
Mein eigentliches Problem ist nun, dass er dies nicht mit den beiden vorangestellten 00 machen kann.
Er zählt hoch, aber schmeisst die 00 weg und zählt dann wieder nur mit 1 Stelle.
Hier ist mal der Code vom Zähler:
@echo off
for /F %%i in (num.txt) do set v=%%i
echo %v%
pause
set /a zahl=%v%
set /a zahl+=1
echo %zahl% >"c:\num.txt"
pause
Weiß da jemand Rat, ob das überhaupt möglich ist ?
Vielen Dank
Ps.: Das hier ist natürlich nur ein Teil der Batch. Hier zählt er einfach nur und gibt mir die Zahl aus :D
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 143725
Url: https://administrator.de/contentid/143725
Ausgedruckt am: 23.11.2024 um 03:11 Uhr
1 Kommentar
Hallo BalloS,
führende Nullen sind bei Zahlen mit denen gerechnet werden soll, in Batch ein Problem weil sie als Oktalzahlen interpretiert werden.
Wenn die Zahl also immer 3-Stellig in der Datei stehen soll, kannst du das so machen.
Gruß
LotPings
führende Nullen sind bei Zahlen mit denen gerechnet werden soll, in Batch ein Problem weil sie als Oktalzahlen interpretiert werden.
Wenn die Zahl also immer 3-Stellig in der Datei stehen soll, kannst du das so machen.
@Echo off&SetLocal
Set Datei="C:\num.txt"
If not Exist %Datei% >%Datei% Echo 000
:: Wenn nur die erste Zeile in num.txt relevant ist reicht zum Lesen dies:
Set /P Zahl=<%Datei%
Echo Zahl=%Zahl%
Set /A "Zahl=1%Zahl% + 1"
Echo Zahl=%Zahl:~-3%
>%Datei% Echo.%Zahl:~-3%
Gruß
LotPings