dfornito
Goto Top

Mit robocopy nur neuste Datei kopieren

Hallo allerseits,

in einem bestimmten Ordner werden automatisch 2x täglich backup-sets (Dateien) abgelegt. Diese Sets haben die gleichen Namen+aufsteigende Zahl mit jedem neuen Set. zB. Backup-Set_1, Backup-Set_2, etc...

Nun möchte ich von diesem Quellordner immer nur dasjenige Backup-Set mit dem neusten Zeitstempel in einen bestimmten Zielordner kopieren. Der Zeitstempel ist der einzige Anhaltspunkt, da der Dateiname nie der gleiche ist.

Das möchte ich in einem Batchfile realisieren, da es automatisiert laufen soll.

Ich glaube das geht mit robocopy...ich werde aber aus all den Schaltern nicht ganz schlau.

Kann mir jemand helfen...oder hat jemand eine andere Idee für mein "Problem" ???

Danke im Voraus

Content-ID: 15578

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

Ausgedruckt am: 14.11.2024 um 21:11 Uhr

Karo
Karo 06.09.2005 um 14:58:58 Uhr
Goto Top
dir Backup-Set*.* /OD /B >"BSet.txt"
for /F %%a in (BSet.txt) do set BSet_Name=%%a
if exist %BSet_Name% copy %BSet_Name% <zielverzeichnis>\*

1 Zeile erstellt eine Dateiliste sortiert nach Datum
2 Zeile liest die Datei Zeilenweise ein und überschreibt Parameter BSet_Name immer mit dem eingelesenden Wert, bis zum Dateiende. Hier steht die neueste Datei
3 Zeile kopieren....

(not testet)

Karo
dfornito
dfornito 06.09.2005 um 15:35:26 Uhr
Goto Top
guter Anstoss...doch beim kopieren findet er die Datei nicht.

"BackupSet_3_0\*
Das System kann die angegebene Datei nicht finden.
0 Datei(en) kopiert."

Nachtrag: Die zu kopierenden Dateien sind ganze Ordner, nicht nur einzelne Dateien.
Karo
Karo 06.09.2005 um 15:51:17 Uhr
Goto Top
uuups da fehlt der Zielordner face-smile
if exist %BSet_Name% copy %BSet_Name% <Zielordner>\*
Beispiel:
if exist %BSet_Name% copy %BSet_Name% c:\temp\*

Wenn es Ordner sind musst Du XCOPY verwenden oder Du benutzt Robocopy.
Beispiel
if exist %BSet_Name% xcopy /F /i /E %BSet_Name% c:\temp\%BSet_Name%

Karo
dfornito
dfornito 07.09.2005 um 15:03:11 Uhr
Goto Top
funktionell eigentlich genau das was ich suche...

doch wenn ich diese Zeilen in ein cmd einpacke looped es dauernd.

was mache ich falsch??