Batchdatei zur Datensicherung auf anderer Partition?
Hallo,
ich beschäftige mich seit relativ kurzer Zeit mit dem schreiben von Batchdateien da sie ein nützliches Werkzeug zum organisieren und verwalten eines PCs sind.
Ich habe meine Festplatte in zwei Partitionen, C:\ und D:\, (auch Sicherung genannt) unterteilt. Auf der Partition C:\ befindet sich Windows XP inklusive SP2 und die zweite Partition soll zur Datensicherung des Ordners "Eigene Dateien" dienen. Die Datensicherung des Ordners "Eigene Dateien" möchte ich aber gerne per Batchdatei bei herunterfahren des PCs ausführen lassen und soll folgendermaßen ablaufen:
Auf dem Laufwerk D:\ exestiert ein Ordner Backup in dem Ordner mit dem Namen Eigene Dateien plus dem Zusatz des aktuellen Datums und der aktuellen Uhrzeit erstellt werden sollen. In diesem Ordner sollen dann alle Ordner und Dateien, beim herunterfahren des PCs, des sich auf der Partition C:\ befindenden Userordners "Eigene Dateien" gesichert werden. Wobei 7 Ordner erstellt werden sollen, die die Datensicherung des jeweiligen Tages enthalten.
z. B:
Eigene Dateien aktuelles Datum und Uhrzeit (Ordner 1)
Eigene Dateien aktuelles Datum und Uhrzeit (Ordner 2)
Eigene Dateien aktuelles Datum und Uhrzeit (Ordner 3)
Eigene Dateien aktuelles Datum und Uhrzeit (Ordner 4)
Eigene Dateien aktuelles Datum und Uhrzeit (Ordner 5)
Eigene Dateien aktuelles Datum und Uhrzeit (Ordner 6)
Eigene Dateien aktuelles Datum und Uhrzeit (Ordner 7)
Nach Ablauf der 7 Datensicherung soll der älteste Ordner, in diesem Beispiel Ordner 1 durch den aktuellen Ordner der Datensicherung ersetzt werden. Also so, dass die erste Datensicerung (Ordner 1) durch die achte Datensicherung überschrieben wird.
Könnt ihr mir bitte bei diesem Problem helfen.
Vielen Dank
IchWeissNicht
ich beschäftige mich seit relativ kurzer Zeit mit dem schreiben von Batchdateien da sie ein nützliches Werkzeug zum organisieren und verwalten eines PCs sind.
Ich habe meine Festplatte in zwei Partitionen, C:\ und D:\, (auch Sicherung genannt) unterteilt. Auf der Partition C:\ befindet sich Windows XP inklusive SP2 und die zweite Partition soll zur Datensicherung des Ordners "Eigene Dateien" dienen. Die Datensicherung des Ordners "Eigene Dateien" möchte ich aber gerne per Batchdatei bei herunterfahren des PCs ausführen lassen und soll folgendermaßen ablaufen:
Auf dem Laufwerk D:\ exestiert ein Ordner Backup in dem Ordner mit dem Namen Eigene Dateien plus dem Zusatz des aktuellen Datums und der aktuellen Uhrzeit erstellt werden sollen. In diesem Ordner sollen dann alle Ordner und Dateien, beim herunterfahren des PCs, des sich auf der Partition C:\ befindenden Userordners "Eigene Dateien" gesichert werden. Wobei 7 Ordner erstellt werden sollen, die die Datensicherung des jeweiligen Tages enthalten.
z. B:
Eigene Dateien aktuelles Datum und Uhrzeit (Ordner 1)
Eigene Dateien aktuelles Datum und Uhrzeit (Ordner 2)
Eigene Dateien aktuelles Datum und Uhrzeit (Ordner 3)
Eigene Dateien aktuelles Datum und Uhrzeit (Ordner 4)
Eigene Dateien aktuelles Datum und Uhrzeit (Ordner 5)
Eigene Dateien aktuelles Datum und Uhrzeit (Ordner 6)
Eigene Dateien aktuelles Datum und Uhrzeit (Ordner 7)
Nach Ablauf der 7 Datensicherung soll der älteste Ordner, in diesem Beispiel Ordner 1 durch den aktuellen Ordner der Datensicherung ersetzt werden. Also so, dass die erste Datensicerung (Ordner 1) durch die achte Datensicherung überschrieben wird.
Könnt ihr mir bitte bei diesem Problem helfen.
Vielen Dank
IchWeissNicht
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 98395
Url: https://administrator.de/contentid/98395
Ausgedruckt am: 25.11.2024 um 23:11 Uhr
9 Kommentare
Neuester Kommentar
Ungetestet könnte es so funktionieren:
@echo off
set "quelle=%USERPROFILE%\Eigene Dateien"
set "ziel=D:\Eigene Dateien %Date:.=% %time::=%"
REM Älteste Sicherung löschen
FOR /F "skip=6 delims=" %%i in ('dir /B /AD /O-D "%ziel%"') do rd /S /Q "%ziel%\%%i"
REM Kopie durchführen
copy "%quelle%" "%ziel%"
Nachvollziehen kann ich nicht warum es nicht funktionieren sollte. Ich habe das ganze bei mir hier mit folgender Zeile nachgestellt:
So wird angezeigt welche Ordner gelöscht werden. Es sollten dabei immer die neusten 6 Ordner behalten werden und alle anderen gelöscht, unabhängig von deren Namen. Sortiert wird nach dem Erstelldatum.
FOR /F "skip=6 delims=" %%i in ('dir /B /AD /O-D "%ziel%"') do echo rd /S /Q "%ziel%\%%i"
@miniversum
Da %ziel% ja aktuelles Datum samt Uhrzeit beinhaltet, wird die "for"-Schleife keinen Ordner finden - daher eher:
Grüße
bastla
Da %ziel% ja aktuelles Datum samt Uhrzeit beinhaltet, wird die "for"-Schleife keinen Ordner finden - daher eher:
FOR /F "skip=6 delims=" %%i in ('dir /B /AD /O-D "D:\Eigene Dateien *"') do echo rd /S /Q "%ziel%\%%i"
bastla
Hallo IchWeissNicht!
So sollte es dann wirklich gehen:
Bei der vorigen Variante war ua auch noch ein "echo" vor dem "rd" enthalten - damit wurde der Löschbefehl nur angezeigt, aber nicht ausgeführt (beim Testen sinnvoll, wenn's dann tatsächlich laufen soll, natürlich etwas hinderlich ).
Grüße
bastla
So sollte es dann wirklich gehen:
@echo off & setlocal
set "quelle=C:\Dokumente und Einstellungen\User\Eigene Dateien"
set "ziel=H:\Backup
set "pre=Eigene Dateien"
set "timestamp=%Date:.=% %Time::=%"
set "timestamp=%timestamp:~,-3%
REM Älteste Sicherung löschen
FOR /F "skip=3 delims=" %%i in ('dir /B /AD /O-D /TC "%ziel%\%pre%*"') do rd /s /q "%ziel%\%%i"
REM Kopie durchführen
xcopy /e /c /i "%quelle%" "%ziel%\%pre% %timestamp%\"
Grüße
bastla