fhvr40
Goto Top

Verschiedene gleichnamige Unterordner in gemeinsamen Unterordner zusammenführen

Bin neu hier, falls meine Frage schon mal gestellt wurde bitte ich um Nachsicht und natürlich den Link, danke.

Ausgangspunkt ist folgende Ordnerstrukur in Windows XP:

D:\VerzeichnisA\Ordner1\c\weitere Unterordner mit Dateien
D:\VerzeichnisA\Ordner2\c\weitere Unterordner mit Dateien
D:\VerzeichnisA\Ordner3\c\weitere Unterordner mit Dateien
usw.

Ich möchte alle Unterordner "c" zusammenführen in den gemeinsamen Unterordner "c" des neuen Verzeichnises "VerzeichnisB", also:

D:\VerzeichnisB\c\ (aus Ordner1, Ordner2, Ordner3 usw.)

Ordner1 usw. müßte durch einen neutralen Platzhalter ersetzt werden, da hier immer neue Ordner dazukommen, deren "c" in "VerzeichnisB" kopiert werden soll.

Gleichnamige Unterordner von "c" sollen überschrieben werden ohne die bereits vorhandenen Inhalte (Dateien) zu löschen, gleichnamige Dateien in Unterordnern sollen nur überschrieben werden, wenn die bereits vorhandene Datei älter ist.

Danke für die Mithilfe!

Content-Key: 202545

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

Printed on: April 23, 2024 at 15:04 o'clock

Member: Friemler
Friemler Feb 28, 2013 updated at 18:20:48 (UTC)
Goto Top
Hallo,

teste mal folgendes:
@echo off & setlocal

set "SrcPath=D:\VerzA"  
set "DestPath=D:\VerzB"  
set "Folder=c"  

for /d %%a in ("%SrcPath%\*.*") do (  
  for /f "delims=" %%b in ('dir /b "%%a\%Folder%" 2^>NUL') do (  
    xcopy /kreichfyd "%%a\%Folder%" "%DestPath%\%Folder%\"  
  )

  echo del /s /f "%%a\%Folder%\*.*"  
)

Durch die Entfernung des ECHO-Befehls in Zeile 12 werden die kopierten Dateien auch gelöscht.

Gruß
Friemler
Member: fhvr40
fhvr40 Feb 28, 2013 at 16:00:54 (UTC)
Goto Top
Hallo Friemler,

danke für die rasche Antwort!
Und vor allem - es funktioniert!
Genauso, wie ich mir das vorgestellt habe, ohne die Ausgangsdateien zu löschen.
Und aktualisieren geht auch.

Vielen Dank! face-smile
Franz
Member: Friemler
Friemler Feb 28, 2013 at 17:18:58 (UTC)
Goto Top
Hallo Franz,

dann setze doch bitte noch den Beitrag auf "Gelöst".

Gruß
Friemler