Programmieren - alles kontrollieren 4.941 Themen, 20.715 Beiträge

Dateien löschen per Batch-Datei (nach Backup)

jabath / 8 Antworten / Baumansicht Nickles

Hallo,


ich möchte mir eine Batchdatei zur regelmäßigen Datensicherung erstellen. Das läuft auch erstmal sehr gut. Mit xcopy und den passenden Parametern werden nur Dateien die neu sind oder die sich verändert haben kopiert.


Was ich jetzt noch möchte ist das Löschen von Dateien im Zielverzeichnis, die im Quellverzeichnis nicht mehr vorhanden sind. Sonst sammelt sich im Backupverzeichnis ein Haufen Müll der gar nicht mehr gebraucht wird.


Hat jemand einen Tip, oder kennt den passenden Befehl?


Danke schon mal


JABATH

bei Antwort benachrichtigen
Borlander jabath „Dateien löschen per Batch-Datei (nach Backup)“
Optionen

Ich sehe aus folgenden Gründen keine Veranlassung zum Löschen:

  • Ein Backup sollte auch einen "Schutz" gegen ungewollt gelöschte Dateien bieten
  • Verschobene Dateien werden bei xcopy auch nicht berücksichtig, man würde also evtl. verschobeene Dateien im Backup einfach löschen
  • Von Zeit zu Zeit ist es sowieo sinnvoll ein komplett neues Backup zu beginnen, so daß man auch mehrere unabhängige BackUp-Sätze (wobei die sich auch zeitlich unterscheiden)


Ich mache das ganze folgendermaßen: Ich füge dem Backup täglich die geänderten Dateien an und erzeuge dabei auch noch den Verzeichnisbaum incl. Dateien in eine neue Datei. Nach einem Gewissen Zeitraum beginne ich einen komplett neuen Satz von BackUp-Medien...


Gruß
Borlander
bei Antwort benachrichtigen
jabath Borlander „Ich sehe aus folgenden Gründen keine Veranlassung zum Löschen: Ein Backup...“
Optionen

Danke für die Antwort, aber ich interpretiere sie so, dass Du auch nicht weißt wie das funktioniert.
Da ich sehr schreibfaul bin, habe ich nicht meine gesammte Backup-Strategie hier aufgeführt, aber nach einer gewissen Zeit macht es durchaus Sinn Daten auch aus dem Differenzbackup zu löschen. Überigens eine Funktion die jede gekaufte Backup-Lösung mit bringt.
Trotzdem Danke.
JABATH

bei Antwort benachrichtigen
Andreas42 jabath „Danke für die Antwort, aber ich interpretiere sie so, dass Du auch nicht weißt...“
Optionen

Hi!

Ich wüsste nicht, wie das mit Hausmitteln zu machen ist. Früher unter DRDOS hatte ich eine Lösung, die aber teilweise mit einem selbstgeschriebenen Tool gearbeitet hat:

- Dateiliste der beiden Verzeichnisse erzeugen (je Verzeichnis in eine Datei)
- Vergleich der Dateien und Filtern der in der ersten Datei nicht vorhandenen Zeilen und schreiben in eine dritte Dateiliste (das war das selbstgeschriebene Tool)
- mittels XDEL löschen, dass die dritte Dateiliste als Parameter verwendet
(- das kopieren von vorhandenen und neuen Dateien wurde dann vergleichbar gelöst)

Im Prinzip dürfte das heute auch noch gehen, man wird sich nur ein Verggleichstool und ein Löschtool suchen müssen. Letzteres muss Dateilisten verarbeiten können.

Meine Tools sind Geschichte, man müsste sich also auf die Suche nach neuen begeben. Evtl. kann man hier starten: http://www.cmdtools.com/

Bis dann
Andreas

Hier steht was ueber mein altes Hard- und Softwaregedoens.
bei Antwort benachrichtigen
Borlander Andreas42 „Hi! Ich wüsste nicht, wie das mit Hausmitteln zu machen ist. Früher unter...“
Optionen

Andreads mit for (allerdings nur bei WinNT/2K/XP) und exists kann man sich evtl. sowas auch per Batch basteln...

Gruß
Borlander

bei Antwort benachrichtigen
harry reiss jabath „Dateien löschen per Batch-Datei (nach Backup)“
Optionen

Hallo jabath,

mein Name ist Harry Reiß.
Ich forsche seit ein paar Wochen nach dem "löschen per Batch-Datei (nach Backup)

Seit ein paar Jahren sichere ich meine Daten auf einem zweiten LW.
Den rest kannste Dir ja denken. Ich meine, ich habe mittlerweile einen privaten Datenstamm von 24 GB (ca 10000 Dateien und ca 800 Verzeichnissen).
Ein komplettes Backup würde mir zu viel Zeit kosten.
So weit so gut. Ich bin zwar ein Stückchen weiter als Du, aber noch nicht fertig.
Bisher habe ich die zu löschenden Dateien (incl. der Pfade), die sich auf dem Ziellaufwerk aber nicht mehr auf dem Quelllaufwerk befinden, mit einem Batch-Befehl in eine Log-Datei schreiben können.
Befehl:
@echo on
xcopy "U:\Datensicherung\*.*" "D:\Eigene Dateien\" /c /s /r /d /y /i /l >> D:\D\xcopy.log
pause

Wobei der Schlüssel zur LÖSUNG der buchstabe L ist. (er tut nur so, als wenn er wirklich kopieren würde. In wirklichkeit werden nur die Pfade in die Textdatei geschrieben.
Meine erstellte Logdatei hat folgenden Inhalt (konstruiertes Beispiel):
U:\Datensicherung\Eigene Musik\MP3 - CD\Sade\Sade - Hang on to Your Love.mp3
U:\Datensicherung\Eigene Musik\MP3 - CD\Sade\Sade - Hold on to Your Love.mp3
U:\Datensicherung\Eigene Musik\MP3 - CD\Sade\Sade - House Mix - I Never Thought.mp3
U:\Datensicherung\Eigene Musik\MP3 - CD\Sade\sade - hungry for love.mp3
U:\Datensicherung\Eigene Musik\MP3 - CD\Sade\Sade - I Miss You.mp3
U:\Datensicherung\Eigene Musik\MP3 - CD\Sade\Sade - I Never Thought I Would See The Day.mp3
U:\Datensicherung\Eigene Musik\MP3 - CD\Sade\Sade - I Was Rent To You.mp3
U:\Datensicherung\Eigene Musik\MP3 - CD\Sade\Sade - I'll Be There (1).mp3
U:\Datensicherung\Eigene Musik\MP3 - CD\Sade\Sade - I'll Be There.mp3
U:\Datensicherung\Eigene Musik\MP3 - CD\Sade\Sade - Immigrant-.mp3
U:\Datensicherung\Eigene Musik\MP3 - CD\Sade\sade - Independent Love Song.mp3
U:\Datensicherung\Eigene Musik\MP3 - CD\Sade\Sade - Is It A Crime.mp3
U:\Datensicherung\Eigene Musik\MP3 - CD\Sade\Sade - Jezebel.mp3
U:\Datensicherung\Eigene Musik\MP3 - CD\Sade\Sade - Kissing You(Romeo and Juliet).mp3
U:\Datensicherung\Eigene Musik\MP3 - CD\Sade\Sade - LOVERS ROCK - 03 - KING OF SORROW.mp3
U:\Datensicherung\Eigene Musik\MP3 - CD\Sade\Sade - Smooth Operator.mp3
U:\Datensicherung\Eigene Musik\MP3 - CD\Sade\Sade- Cherish the Day.mp3
U:\Datensicherung\TMP\anidel.gif
U:\Datensicherung\TMP\anim09.gif
U:\Datensicherung\TMP\azurwi.jpeg
U:\Datensicherung\TMP\azwindow.jpeg
U:\Datensicherung\TMP\backgr04.gif
U:\Datensicherung\TMP\Bestellbest„tigung.pdf
U:\Datensicherung\TMP\check.gif
U:\Datensicherung\TMP\Dokumente.doc
U:\Datensicherung\TMP\EPG_Chan.log
U:\Datensicherung\TMP\fr Susanne-.pdf
U:\Datensicherung\TMP\Gesch„ftsbrief Typ A.dot
U:\Datensicherung\TMP\Gesch„ftsbrief Typ B.dot
U:\Datensicherung\TMP\gomerabg.jpeg
U:\Datensicherung\TMP\gomerahs.jpeg
U:\Datensicherung\TMP\gomerate.jpeg
U:\Datensicherung\TMP\gozohs.jpeg
U:\Datensicherung\TMP\handy.jpeg
U:\Datensicherung\TMP\Leere Pr„sentation.pot
U:\Datensicherung\TMP\Liste der Lautschrift.jpg
U:\Datensicherung\TMP\Lockerer Brief.dot
U:\Datensicherung\TMP\PDOXUSRS.NET
U:\Datensicherung\TMP\protocol.txt
U:\Datensicherung\TMP\RECHNUNG.DOT
U:\Datensicherung\TMP\Setup.log
U:\Datensicherung\TMP\shape025.jpeg
U:\Datensicherung\TMP\TTS-ESSEN .url
U:\Datensicherung\TMP\waterbar.gifa
U:\Datensicherung\TMP\wialog.txt

Mein Problem ist: Wie heisst der Befehl, mit dem ich diese Dateien automatisch löschen kann. Ich muss ja jede Zeile noch wegen des langen Dateinamens editieren (das Problem mit dem " am Anfang und Ende jeder Zeile)
Das setzen an den Anfang jeder Zeile bekomme ich durch "Suchen und Ersetzen" noch hin. Es fehlt mir nur noch das " an jedem Zeilenende, da jede Zeile ja ein anderes Ende hat. Wenn ich das Problem gelöst hätte, würde ich der Datei danach einfach eine Namenserweiterung Namens *.Bat geben und ab damit.

So, jetzt seit ihr dran.
Harry Reiß

bei Antwort benachrichtigen
jabath harry reiss „Hallo jabath, mein Name ist Harry Reiß. Ich forsche seit ein paar Wochen nach...“
Optionen

Hallo,
danke für den Tip mit dem Schalter "L". Damit komme ich schon mal weiter. Was Dein Problem angeht, so weiß ich nicht genau ob ich es richtig verstanden habe. Wenn Du allerdings mit einer Batch-Datei Anführungszeichen am Anfang und Ende einer Zeile entfernen willst, könnte Dir dieser Link weiter helfen:
http://home.t-online.de/home/erdalkaraca/html/bsh_d.htm#a22

Gruß JABATH

bei Antwort benachrichtigen
Borlander harry reiss „Hallo jabath, mein Name ist Harry Reiß. Ich forsche seit ein paar Wochen nach...“
Optionen

Sieht mir spontan auch so aus als ob man das mit for lösen könnte (Zeilenweise einen Befehl ausführen, die " kommen dann dort mit rein)...

bei Antwort benachrichtigen
abi3 jabath „Dateien löschen per Batch-Datei (nach Backup)“
Optionen

Versuche es mit Robocopy findest du bei Microsoft oder in den Resourcekits.
In den neueren Versionen gibt es den /mir -Parameter(Spiegeln) das ist einfach und deutlich leistungsfähiger als xcopy zumal es die Berechtigungen mit kopieren kann!
Das ganze ist dann ein 1-Zeiler!

bei Antwort benachrichtigen