72123
Goto Top

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:

@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?

Content-Key: 102534

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

Printed on: April 24, 2024 at 22:04 o'clock

Member: bastla
bastla Nov 24, 2008 at 15:30:37 (UTC)
Goto Top
Hallo Bacaco und willkommen im Forum!

Versuch es mit "xcopy" so:
xcopy /d "%~1" "backup\%~n1 - %datum%.alt*"
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 face-wink) - indem Du "%~n1" verwendest.

Grüße
bastla
Mitglied: 72123
72123 Nov 24, 2008 at 19:05:56 (UTC)
Goto Top
Danke für die Antwort Bastla face-smile

klappt ganz gut soweit face-smile werde morgen nochmal einen Durchlauf machen und schauen, ob er die Daten überschreibt oder wieder die eine Nachricht mit der Frage kommt.

Schönen Abend noch

Gruss,
Bacaco
Member: bastla
bastla Nov 24, 2008 at 19:19:47 (UTC)
Goto Top
Hallo Bacaco!

Noch als Anmerkung: Das Datum würde ich eher "JJJJ_MM_TT" schreiben - erleichtert ggf die Sortierung ...

Grüße
bastla
Mitglied: 72123
72123 Nov 24, 2008 at 19:21:55 (UTC)
Goto Top
Danke für die Info...

ich liebe dieses Forum!