Dateien von zwei Platten "subtrahieren"?

ermel83

Lieutenant
Registriert
Feb. 2008
Beiträge
665
Moin Leute,

folgendes Problem:

Hab 2 Festplatten da, wobei die Daten auf der ersten Platte ein Teil der Daten auf der zweiten Platte sind.
Hintergrund ist, dass Platte 2 mal eine exakte Kopie von Platte 1 war, danach aber nur noch mit Platte 2 gearbeitet wurde.

Anschaulich:

Festplatte 1 enthält in einem Ordner
- Datei A
- Datei B
- Datei C

Festplatte 2 enthält im selben Ordner
- Datei A
- Datei B
- Datei C
- Datei D
- Datei E


Wie stelle ich es am geschicktesten an, dass ich nur Datei D und Datei E erhalte?

Ich möchte quasi von den Daten auf Platte 2 alle Daten "abziehen", die auf Platte 1 schon sind und den Rest behalten.
Geht das irgendwie?


Danke und Gruß,
ermel83
 
Zuletzt bearbeitet:
Bist du sicher das die von Platte 1 nach Platte 2 geklonten Dateien alle unverändert sind ? Wenn nein, wie sollen unterschiedliche Dateien mit gleichem Namen dann behandelt werden ?

In der englischen Wikipedia gibt es einen Vergelich von Dateivergleichstools. Da könnte das eine oder andere dabei sein , was bei deinem Problem helfen kann.
Als GUI-Tool sieht winmerge auf den ersten Blick ganz gut aus
 
Zuletzt bearbeitet: (links zu tools ergänzt)
Wenn auf Platte 2 alle Daten sind warum löschst du nicht einfach Platte 1?

Alternativ gibt es noch diverse Tools die gezielt nach Duplikaten von Dateien suchen können,
z.B. DiskBoss oder Anti-Twin.
Habe ich persönlich aber noch nie getestet, also angaben ohne Gewähr. :D
 
Die Dateien, die dem Namen nach auf beiden Platten vorhanden sind, sind zu 99,9% identisch... vielleicht gibt es 10 Dateien die nochmals geöffnet wurden und bearbeitet wurden, das wäre mir aber fast egal..

Wichtig wäre mir nur, alle auf Platte 2 vorhandenen Daten welche nicht auch auf Platte 1 sind zu bekommen, dh dass am Ende nur noch Datei D und Datei E im Ordner liegen (aus obigen Beispiel).

@Tiger1981: weil ich die Daten von Platte 1 bereits in Wochen mühsamer Kleinarbeit in Archive gepflegt habe und nun erfahren habe, dass es noch eine Platte mit aktuelleren Daten gibt :freak:
 
Zuletzt bearbeitet:
Du kannst dazu ein Programm verwenden namens "FreeFileSync", damit lässt sich auch der Dateiinhalt auf
Übereinstimmung prüfen.

Nach dem Abgleich kann dann kopiert werden.
 
Da gibt's ein Tool von Microsoft das heißt synctoy das kann ein Echo von platte 2 machen auf 1 dann sind aber auch die gelöschten von 2 weg. Oder du musst synchronisieren dann werden fehlende auf beiden Seiten kopiert. Nach meiner Erfahrung ist das sehr schnell beim vergleichen!
 
Zuletzt bearbeitet:
Schritt 1: Schließe beide Platten an einen PC.
Schritt 2: Lösche Platte 1.
Schritt 3: Verschiebe Ordner A, B und C von Platte 2 nach Platte 1.
Schritt 4: Je nach Anbindung und Plattengröße 8-10h warten. Aber so lange würden die Vergleichstools auch brauchen.
 
Der FreeCommander hat auch sehr gute Funktionen zum vergleichen von Dateien und Ordnern. Dort kann man Dateien/Ordner nach Namen, Erstell- bzw. letzter Änderungszeitpunkt oder auch nach Checksumme vergleichen (gibt sehr viele Einstellungen). Danach kann man entscheiden was man mit den dann markierten Dateien macht, z.B. geänderte Dateien von der linken auf die rechte Seite kopieren etc.
 
Dein Stichwort: Inkrementelles Backup :) (z.B. robocopy)

Es kopiert nur die noch nicht vorhandene Daten. Einfach googlen :)
Aber teste das Script vorher erst - manchmal übersieht man etwas und dann sind die Daten einfach weg :)
 
Zuletzt bearbeitet:
am Ende hat er 2x Datei A mit unterschiedlichen Datum und muss es eh nochmal machen ..
 
Hab dir hier mal ein VBScript erstellt (durchsucht auch Unterordner).
Einfach in eine Textdatei kopieren, die Pfade strPath_A und strPath_B anpassen und als "beliebigerName.vbs" speichern.

Der Sicherheit zu Liebe werden die Dateien nur umbenannt bzw. der Name um .bak erweitert.
Du kannst dann einfach nach *.bak suchen und die Dateien von Hand verschieben oder löschen.

Code:
Public strPath_A, strPath_B, strMovePath
Public objFS
Set objFS = CreateObject("Scripting.FilesystemObject")


strPath_A = "E:\MeinOrdner\"	' Vergleichs-Ordner A (deine Festplatte 2), in dem Duplikate umbenannt werden
strPath_B = "D:\MeinOrdner\"	' Vergleichs-Ordner B (deine Festplatte 1)
strSuffix = ".bak"


Load_Comparer
MsgBox "Fertig!"

Sub Load_Comparer()
	Dim objFolder

	Set objFolder = objFS.getfolder(strPath_A)
	Get_SubObjects objFolder
End Sub


Sub Get_SubObjects(objFolder)
	Dim objSubFolder, objFile
	
	On Error Resume Next  'falls: ZUGRIFF VERWEIGERT!
	For Each objFile In objFolder.Files
		Compare_Objects objFile
	Next
	
	For Each objSubFolder In objFolder.subfolders
		Get_SubObjects objSubFolder
	Next
End Sub


Sub Compare_Objects(objFile)
	Dim strCompPath
	
	strCompPath = Replace(objFile.Path, strPath_A, strPath_B)
	
	On Error Resume Next
	If objFS.FileExists(strCompPath) Then
		objFile.Name = objFile.Name & strSuffix
	End If
	
	If Err.Number > 0 Then
		MsgBox "Error # " & CStr(Err.Number) & vbCrlf & "Datei: " & objFile.Path & vbCrLf & Err.Description
		Err.Clear
	End If
End Sub
 
Zuletzt bearbeitet:
Zurück
Oben