PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Win 7 x64 - Daten automatisch kopieren ohne dubletten


Argo Zero
2014-09-19, 12:48:49
Ahoi,

ich habe folgende Situation, die ich gerne automatisieren wollen würde:

Ordnerstruktur
\Produktion\KW01
\Produktion\KW02

...

Innerhalb des Ordners KW01 gibt es dann folgende Dateien:

3344_Motiv_01
3312_Motiv_01

Innerhalb KW02 schaut es dann so aus:

3344_Motiv_02
3312_Motiv_02

Problem: Die Datei ist eigentlich gleich aber wird jede Woche erneut angelegt. Ich brauche aber wirklich nur eine Version dieser datei.

Wie könnte ich das automatisieren? Sprich, Stelle A sind die verschiedenen Ordner (siehe oben) und Stelle B ist ein Sammelordner ohne Ordnerstruktur.

Das Programm müsste also nur bis zum ersten "_" analysieren und entsprechend alles in den Zielordner kopieren.

Wie setze ich das am besten um? :)

Milton
2014-09-19, 14:43:22
Am einfachsten und sichersten wäre es, erst mal alles zu kopieren und dann einen Dublettenfinder über die Kopie drüberlaufen zu lassen. Z.B. Noclone oder etwas in der Art.

Watson007
2014-09-19, 15:29:57
benutze das Skript rsyncBackup von der c't, das benutzt Hardlinks (Verknüpfungen) statt die Datei immer neu anzulegen. Voraussetzung: NTFS als Dateisystem
Der Dateiname muss aber gleich bleiben damit das funktioniert

Mit Windows-Bordmitteln lässt sich aber nicht herausfinden ob eine Datei echt ist oder nur ein Hard/Softlink. Dazu kannst du aber das Programm ctTrueSize benutzen.

Marscel
2014-09-19, 15:52:06
Mit Windows-Bordmitteln lässt sich aber nicht herausfinden ob eine Datei echt ist oder nur ein Hard/Softlink.

dir /AL /S .

Watson007
2014-09-19, 16:13:37
dir /AL /S .

habe ich gerade an meinem Server getestet, danke.

Funktioniert mit Softlinks, aber nicht mit Hardlinks wie es rsyncbackup benutzt.
ctTrueSize listet auch die Hardlinks auf.

zumindest in Bezug auf Hardlinks gilt mein Satz, dass diese mit Windows-Bordmitteln nicht aufzuspüren sind.

Marscel
2014-09-19, 16:50:43
zumindest in Bezug auf Hardlinks gilt mein Satz, dass diese mit Windows-Bordmitteln nicht aufzuspüren sind.

fsutil hardlinks list <Datei>

Oder alternativ PowerShell mit WinAPI. Das ist letztendlich das, was alle Tools machen, indem sie das auf jede Datei auf dem FS anwenden.

Watson007
2014-09-19, 17:30:00
danke für den Befehl (du musst die Einzahl von hardlinks als Parameter benutzen)
aber sowas könnte man eigentlich auch in den Windows Explorer integrieren...

aber ctTrueSize ist trotzdem nützlich um die tatsächliche Größe eines Verzeichnisses ohne Links herauszufinden.
so wie ich das sehe geht das auch mit deinen dos-tools nicht.
wenn man über den Windows-Explorer die Größe eines Ordners, welcher Hardlinks enthält, zusammenrechnen lässt kommt eine unsinnige Zahl dabei heraus (Multiplikation halt).
spätestens an der Stelle wird die mangelnde Unterstützung von Links in der Windows-GUI ersichtlich.

Argo Zero
2014-09-22, 15:38:17
Danke euch. Es geht soweit. :)
Jetzt muss ich unserer CRM Software (Access - Visual Basic) noch beibringen, dass der KW jeweils genutzt, als Suchindex vom Auftrag, damit nicht 100 Unterordner durchsucht werden.