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

Ausgedruckt am: 28.03.2024 um 23:03 Uhr

Mitglied: Friemler
Friemler 28.02.2013 aktualisiert um 19:20:48 Uhr
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
Mitglied: fhvr40
fhvr40 28.02.2013 um 17:00:54 Uhr
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
Mitglied: Friemler
Friemler 28.02.2013 um 18:18:58 Uhr
Goto Top
Hallo Franz,

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

Gruß
Friemler