chariman
Goto Top

Kopieren und Löschen mit Batch Datei

Hallo Zusammen

Trotz Suche auf dem Forum, fand ich leider noch keine Antwort zu meinem Problem:

Ich möchte ein tägliches Backup von 6 Dateien (unterschiedliche Namen und Endungen) in einem Ordner mit dem aktuellem Datum erstellen. Dies klappt auch wunderbar mit xcopy und eurer Hilfe.
Jedoch möchte ich nach einer Woche die Dateien löschen um nicht die Harddisk vollzustopfen. Dazu habe ich das Program delage32 gefunden, was auch funktioniert.
Jedoch kann der Fall eintretten, dass die Dateien seit über eine Woche nicht bearbeitet worden sind, somit ist das Datum älter als die 7 Tage und delage32 löscht diese und es bleibt nur der von xcopy erstelle leere Ordner übrig...

Das wäre natürlich nicht wünschenswert!!!

Gibt es eine Möglichkeit mit xcopy jeweils das Datum der Datei zu ändern oder gibt es Einstellungsmöglichkeiten bei delage32 so das jeweils nur das Datum des Ordner berücksichtig wird???

Ich hoffe ich habe mich verständlich ausgedrückt?!

wünsche allen noch nen schönen Tag und herzlichen Dank schonmal

Gruess

Content-Key: 73183

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

Printed on: April 20, 2024 at 05:04 o'clock

Member: bastla
bastla Nov 11, 2007 at 23:00:13 (UTC)
Goto Top
Hallo chariman und willkommen im Forum!

Soferne ich Dich richtig verstanden habe, möchtest Du eigentlich die 7 jeweils aktuellsten Sicherungsordner (unabhängig vom Alter) behalten und alle anderen löschen. Dies ließe sich etwa so realisieren:
@echo off & setlocal
set "Ziel=D:\Sicherungen"  
set /a Anzahl=7

set Dat=%date:~-4%-%date:~-7,2%-%date:~-10,2%
if not exist "%Ziel%\%Dat%" md "%Ziel%\%Dat%"  
copy Datei1.typ "%Ziel%\%Dat%\">nul  
...
copy Datei6.typ "%Ziel%\%Dat%\">nul  

for /f "skip=%Anzahl% delims=" %%i in ('dir /b /ad /o-d "%Ziel%"') do rd /s /q "%Ziel%\%%i"  

Da Du keine näheren Informationen über den von Dir verwendeten "xcopy"-Befehl gegeben hast, habe ich diesen einfach durch eine Reihe von "copy"-Befehlen simuliert.

Die "for"-Schleife am Ende liest das Inhaltsverzeichnis des Sicherungsordners "D:\Sicherungen" (und davon nur die Ordner) in zeitlich absteigender Reihenfolge aus (also neueste Ordner zuerst) und überspringt die gewünschte Anzahl zu behaltender Ordner. Alle weiteren werden gelöscht.

Grüße
bastla
Member: chariman
chariman Nov 12, 2007 at 06:53:14 (UTC)
Goto Top
Hi,
Danke für die Antwort, bin leider erst heute wieder am online.
Ja du hast mich richtig verstanden, die Sicherungsordner der letzten 7 Tage sollen erhalten bleiben und die älteren gelöscht werden. Das Alter der Dateien welche darin sind darf keine Rolle spielen beim löschen nur das Erstellungsdatum des Ordners.

xcopy verwende ich einfach mit *.* somit werden alle Dateien kopiert, egal wie sie heissen und wie viele es sind.

Ich werde aber mal meine BatchDatei anpassen, danke für die schnelle und kompetente Antwort!!!

Schöner Wochenstart