splittedangel
Goto Top

Datensicherung per Batch-Datei mit Überschreibung nach 5 Sicherungen

Hallo liebes Forum,

ich habe folgendes Problem:

Ich möchte eine Batch Datei erstellen, die mir Daten und Ordner in einen Bestimmten Sicherungsordner kopiert. Soweit weiß ich auch wie das funktioniert. Die eig. Schwierigkeit besteht darin das ich das so machen möchte das er mir wenn ich auf Sicherung klicke einen neuen Ordner mit der neuen Sicherung erstellt, ich aber nachher net zigtausend Ordner habe, sondern wenn in meinem Sicherungsordner 5 Sicherungen vorhanden sind er die erste nimmt und diese mit der neuen Sicherung überschreibt. Ist sowas möglich und wenn ja wie. Brauche dazu nichtmal ein Komplettes Batch-Script möchte nurmal evtl. wissen ob das überhaupt geht und wenn ja wo ich ansetzen kann.

Gruß Splittey

Content-ID: 123043

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

Ausgedruckt am: 26.11.2024 um 05:11 Uhr

bastla
bastla 19.08.2009 um 12:18:32 Uhr
Goto Top
Hallo Splittedangel!

Etwa so, um nur die jüngsten 4 Ordner zu behalten:
for /f "skip=4 delims=" %i in ('dir /b /ad /o-d "D:\Sicherungsordner"') do echo rd /s /q "D:\Sicherungsordner\%i"
Das "echo" dient natürlich nur dem gefahrlosen Testen ...

Grüße
bastla
Splittedangel
Splittedangel 19.08.2009 um 13:13:55 Uhr
Goto Top
Ok werdes bei Gelegenheit mal testen und wenn ich noch i.w. hänge mich nochmal melden. Schönen dank schonmal soweit.


Habe jetzt ein anderes Problem. Habe (k.A. was ich mir dabei gedacht habe) bei meiner BAT Datei das Desktopsymbol geändert und dabei die Zuordnung der Dateinamenserweiterung ".bat" gelöscht. Jetzt muss ich diese ja wieder neu mit einem Windows Programm/Dienst verknüpfen. Mit welcher muss man die denn Verbinden? VIelen Dank schonmal im Vorraus

Splittey
Splittedangel
Splittedangel 20.08.2009 um 11:14:02 Uhr
Goto Top
Also meine Batch Dateien laufen wieder krieg das aber alleine net gebacken. Danke bastla für deinen Lösungsansatz aber ich bräuchte nach Möglichkeit doch noch ein wenig mehr Hilfe.
bastla
bastla 20.08.2009 um 14:56:52 Uhr
Goto Top
Hallo Splittedangel!

Die Zeile oben war nur für das Löschen des fünftältesten (bzw genauer: für das Löschen aller Ordner, mit Ausnahme der 4 jüngsten) gedacht - dies unter der Annahme, dass die Ordner variable Namen (zB inkl. Datum) tragen.

Falls Du immer gleichbleibende Namen verwenden solltest, könntest Du so vorgehen, um wiederum die 4 jüngsten Ordner unangetastet zu lassen, den 5. Ordner mit dem ursprünglichen Namen neu zu erstellen und ev vorhandene noch ältere Ordner zu entsorgen:
@echo off & setlocal
set "Ordner=D:\Sicherungsordner"  

set "Letzter="  
for /f "skip=4 delims=" %%i in ('dir /b /ad /o-d "%Ordner%"') do (  
    rd /s /q "%Ordner%\%%i"  
    if not defined Letzter (
        md "%Ordner%\%%i"  
        set "Letzter=%%i"  
    )
)
echo Der Ordner %Letzter% ist jetzt wieder leer
Achtung beim Testen: Dieses Mal ist das Löschen "scharf geschaltet" (kein "echo").
Falls der beschriebene Ansatz nicht Deinem Vorhaben entspricht, solltest Du vielleicht auch etwas von Deinem Code posten ...

Grüße
bastla
Splittedangel
Splittedangel 24.08.2009 um 11:53:24 Uhr
Goto Top
So habe bis jetzt folgenden Code der mir einen neuen Ordner mit dem heutigen Datum erstellt und alles dort reinkopiert, aber eben immer nen neuen macht.


@echo off
echo Datensicherung
md c:\Sicherung\%date%
Xcopy c:\Ziel c:\Sicherung\%date% /Y/V/E/S/H
pause
Biber
Biber 24.08.2009 um 15:37:17 Uhr
Goto Top
Moin 's Little Dengel,

was ich jetzt nicht verstehe ist, wenn das hier Dein heutiger Stand íst nach den ganzen Lösungsvorschlägen:
Zitat von @Splittedangel:
So habe bis jetzt folgenden Code der mir einen neuen Ordner mit dem
heutigen Datum erstellt und alles dort reinkopiert, aber eben immer
nen neuen macht.


@echo off
echo Datensicherung
md c:\Sicherung\%date%
Xcopy c:\Ziel c:\Sicherung\%date% /Y/V/E/S/H
pause

... inwiefern unterscheidet sich denn das jetzt von dem, was Du vor einer Woche vor den ersten Kommentaren gehabt hast ???
Ich möchte eine Batch Datei erstellen, die mir Daten und Ordner in einen Bestimmten Sicherungsordner kopiert.
Soweit weiß ich auch wie das funktioniert.

Oder tut es Dir einfach nur gut, mal mit jemand darüber reden zu können?
Wann ist denn endlich wieder Wochenende? Urlaub? Der nächste Lotto-Jackpot? Die nächste Dope-Ernte?

Back to thread:
Wie genau ist denn jetzt Dein Plan und/oder Deine Erwartungshaltung an das Forum?

Grüße
Biber
GrEEnbYte
GrEEnbYte 08.09.2009 um 09:24:09 Uhr
Goto Top
Hallo bastla , Hallo Biber

auch wenn s little dangel abgetaucht ist-
mir hat der Code schon geholfen.
Ich kann also jetzt die jüngsten XXX Ordner behalten- Rest wird gelöscht
Wenn ich aber nun keine Ordner habe, sondern sich das Löschen /Behalten nur auf DAteien im einem Verzeichnis beziehen soll?
Da habe ich nichts gefunden, da der dir Befehl das so nicht hergibt oder?
Mein/Dein Code:
SET Verzeichnis=\\Joerg\backup-mobil\ifls-server-system\

rem Anzahl der Ordner die nicht gelöscht werden sollen
set Keepfiles=4

rem behält die %keepfiles% letzten Dateien
for /f "skip=%Keepfiles% delims=" %%i in ('dir /b /ad /o-d "%Verzeichnis%"') do rd /s /q "%Verzeichnis%\%%i"  

ciao
vielen Dank für die Hilfe
GrEEnbYte
bastla
bastla 08.09.2009 um 10:36:12 Uhr
Goto Top
Hallo GrEEnbYte!

Die Zeile 7 sollte dann etwa so aussehen:
for /f "skip=%Keepfiles% delims=" %%i in ('dir /b /a-d /o-d "%Verzeichnis%"') do del "%Verzeichnis%\%%i"
Die Erklärung dazu liefert (hoffentlich) "dir /?" ...

Grüße
bastla
Splittedangel
Splittedangel 08.09.2009 um 11:27:08 Uhr
Goto Top
Zur Komplettierung:


rmdir /Q /S %RSAVE5%
move /y %RSAVE4% %RSAVE5%
rmdir /Q /S %RSAVE4%
move /y %RSAVE3% %RSAVE4%
rmdir /Q /S %RSAVE3%
move /y %RSAVE2% %RSAVE3%
rmdir /Q /S %RSAVE2%
move /y %RSAVE1% %RSAVE2%
rmdir /Q /S %RSAVE1%
mkdir %RSAVE1%
Xcopy %QUELLE% %RSAVE1% /y /e /s /h
bastla
bastla 08.09.2009 um 19:13:29 Uhr
Goto Top
Hallo Spllittedangel!

Wenn Du das schon "zu Fuß" machst, dann wenigstens ohne Umwege:
rd /s /q %RSAVE5%
move %RSAVE4% %RSAVE5%
move %RSAVE3% %RSAVE4%
move %RSAVE2% %RSAVE3%
move %RSAVE1% %RSAVE2%
md %RSAVE1%
xcopy %QUELLE% %RSAVE1% /e /h
Grüße
bastla