Supportnet Computer
Planet of Tech

Supportnet / Forum / Anwendungen(Java,C++...)

Automatische Datensicherung mit bat Datei





Frage

Hallo ich möche eine Datenischerung mit dem xcopy befehl und dem taskmanager automatisiert durchführen lassen (auf eine externe Festplatte). Dazu habe ich mir nun folgende batch-datei geschrieben: [code] set von="C:\Dokumente" set nach="H:\SICHERUNG\%date%\" echo Starte Datensicherung am %date% um %time% von %von% nach %nach% >>%windir%\backup.log >>%windir%\backup.log xcopy %von% %nach% /S /E /C /H /O /R /Y /D /V echo Der Kopiervorgang wurde abgeschlossen. >>%windir%\backup.log start notepad.exe %windir%\backup.log [/code] Das Programm funktioniert einwandfrei und ist in Verbindung mit dem Taskmanager echt empfehlenswert! Es erstellt jeden Tag einen Ordner mit dem aktuellen Datum und kopiert die zu sichernden Dateien hinein. Am Ende wird eine Logdatei angezeigt. Mein Problem ist jetzt aber folgendes: ich möchte nur das die Backups der letzten 7 Tage vorhanden sind. D.h. dass, wenn mehr Order als 7 vorhanden sind, der Order mit dem "kleinsten" Datum beim nächsten start, ohne Nachfrage am besten, komplett gelöscht wird. Dadurch soll verhindert werden dass die Platte eines Tages voll ist und keine Sicherung mehr durchgeführt werden kann. Es wäre echt super wenn mir jemand helfen könnte!!!

Antwort 1 von TheBlackBird_

Hi,

Wenn das Ganze unter XP laufen soll, dann sollte sich das wie folgt realisieren lassen...


set von="C:\Dokumente"
set ziel="H:\SICHERUNG\"
set nach="%ziel%%date%\"
echo Starte Datensicherung am %date% um %time% von %von% nach %nach% >>%windir%\backup.log >>%windir%\backup.log
xcopy %von% %nach% /S /E /C /H /O /R /Y /D /V
echo Der Kopiervorgang wurde abgeschlossen. >>%windir%\backup.log
for /f "skip=7" %%i in (´dir /o-d /b %ziel%´) do rmdir /s /q %ziel%\%%i
start notepad.exe %windir%\backup.log



Erlaeuterung:
Einfuehrung von %ziel%-> um leichte Anpassung zu gewaehrleisten, und das uebergeordnete Sicherungsverzeichnis fuer die FOR-Schleife uebergeben zu koennen

die for-Schleife
-der Befehl dir /o-d /b listet die Verzeichnisse nach dem Erstellungsdatum sortiert im einfachen Anzeigeformat auf (neueste zuerst)
- for /f "skip=7" ueberspringt in dieser Auflistung die ersten 7 Zeilen, und fuehrt fuer die verbleibenden Eintraege den Befehl rmdir /s /q wobei als zu loeschendes Verzeichnis das %Ziel%Verzeichnis und der jeweilige Listeneintrag uebergeben wird.

D.H., da die Liste nach dem Erstellungsdatum gefuehrt/sortiert ist, wobei das neueste Verzeichnis zuerst gelistet ist, werden die 7 neuesten Verzeichnisse unberuehrt bleiben, und alles was aelter ist wird geloescht. Dabei ist es unerheblich, ob es mal Tage ohne Sicherung gab oder nicht. Du solltest dadurch also immer die letzten 7 Sicherungen behalten.

Cu TheBlackBird ®

btw: die FOR-Schleife reicht von for /f... bis %ziel%\%%i, und gehoert in eine einzige Zeile der Batch. Da hier im Forum trotz Code-Tag der Zeilenumbruch zuschlaegt, schreib ich das lieber dabei. Bei Copy&Paste sollte das aber richtig behandelt werden.

Antwort 2 von ankalla

Vielen Dank!!!

Antwort 3 von Tim_1973

Hab auch schon versucht mit gratis Versionen zu machen.
Wenn die Daten aber regelmäßig und automatisch gesichert werden sollen dann bekommt
man das nur mit Software hin. Hab mich jetzt für Automatische Datensicherung entschieden.
Da kann man sogar automatisch und regelmäßig sichern lassen... Link ist
*xxxxxxxxx*
Kann ich echt empfehlen und ist auch nicht sooo teuer....jedenfalls besser als die Batch datei

LG,

Tim

  • *Threadedit* 14:56:09, 11.07.2008
    Admininfo: Eigenwerbung gelöscht, siehe FAQ 5, #5


  • Ich möchte kostenlos eine Frage an die Mitglieder stellen:


    Ähnliche Themen:


    Suche in allen vorhandenen Beiträgen: