
72123
24.11.2008, aktualisiert um 20:21:56 Uhr
Per Batch Datei kopieren und prüfen ob schon vorhanden
Hallo,
hoffe, dass ihr mir helfen könnt...leider habe ich im Forum nicht wirklich das gefunden, was ich brauche und als Batch-Noob komm ich nicht wirklich weiter.
Folgendes Problem steht bei mir an:
Bestehende *.LOG Dateien werden ab einer bestimmten Größe in *.ALT Dateien umgewandelt, bei denen die schon vorhande *.ALT Datei überschrieben wird.
Ich muss jetzt per Batch diese ALT-Dateien in einen anderen Ordner kopieren (ggf. noch mit einem Kopierdatum) << klappt auch ganz gut soweit, nur werden bei jeder Ausführung der Batch Datei, die schon kopierten ALT Dateien nocheinmal kopiert. Ich möchte nun an Hand des Zeitstempels "geändert am" prüfen, ob diese Datei im Zielordner ist, wenn ja, wird diese übersprungen und nicht kopiert.
Die Dateinamen sehen wie folgt aus: 12345.LOG bzw. 12345.ALT
Und hier mein Code:
Hoffe, dass war verständlich..
PS: xcopy hat soweit ich es verstanden habe eine Möglichkeit nur neue Dateien zu kopieren, aber wenn ich statt copy xcopy (+die jeweiligen Parameter) habe, fragt er mich immer ob es eine Datei oder ein Verzeichnis ist. Und bei mir soll alles automatisch im TaskPlaner ablaufen. Wisst ihr da was?
hoffe, dass ihr mir helfen könnt...leider habe ich im Forum nicht wirklich das gefunden, was ich brauche und als Batch-Noob komm ich nicht wirklich weiter.
Folgendes Problem steht bei mir an:
Bestehende *.LOG Dateien werden ab einer bestimmten Größe in *.ALT Dateien umgewandelt, bei denen die schon vorhande *.ALT Datei überschrieben wird.
Ich muss jetzt per Batch diese ALT-Dateien in einen anderen Ordner kopieren (ggf. noch mit einem Kopierdatum) << klappt auch ganz gut soweit, nur werden bei jeder Ausführung der Batch Datei, die schon kopierten ALT Dateien nocheinmal kopiert. Ich möchte nun an Hand des Zeitstempels "geändert am" prüfen, ob diese Datei im Zielordner ist, wenn ja, wird diese übersprungen und nicht kopiert.
Die Dateinamen sehen wie folgt aus: 12345.LOG bzw. 12345.ALT
Und hier mein Code:
@echo off
for %%F in (*.alt) do Call :kopieren "%%F"
goto :eof
:kopieren
set jahr=%date:~-4%
set monat=%date:~-7,2%
set tag=%date:~-10,2%
set datum=%tag%_%monat%_%jahr%
for /F "delims=. tokens=1" %%i in (%1) do copy "%1" "backup\%%i - %datum%.alt"
:: back to caller mit goto :eof
pause
goto :eof
Hoffe, dass war verständlich..
PS: xcopy hat soweit ich es verstanden habe eine Möglichkeit nur neue Dateien zu kopieren, aber wenn ich statt copy xcopy (+die jeweiligen Parameter) habe, fragt er mich immer ob es eine Datei oder ein Verzeichnis ist. Und bei mir soll alles automatisch im TaskPlaner ablaufen. Wisst ihr da was?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 102534
Url: https://administrator.de/forum/per-batch-datei-kopieren-und-pruefen-ob-schon-vorhanden-102534.html
Ausgedruckt am: 22.05.2025 um 20:05 Uhr
4 Kommentare
Neuester Kommentar
Hallo Bacaco und willkommen im Forum!
Versuch es mit "xcopy" so:
Zur Ermittlung des Dateinamens (ohne Extension) kannst Du Dir den Umweg über die "for"-Schleife ersparen - obwohl die Erklärung dazu in der Hilfe zu "for" (mit "for /?"), und dort ziemlich am Ende, zu finden ist
) - indem Du "%~n1" verwendest.
Grüße
bastla
Versuch es mit "xcopy" so:
xcopy /d "%~1" "backup\%~n1 - %datum%.alt*"
Grüße
bastla