greenv5
Goto Top

Datei - und Ordnertransfer in unterschiedlichen Strukturen und variablen Ordnernamen

Hallo zusammen, ich habe lange nach einer Lösung im Netz gesucht, vielleicht fehlt mir auch jegliche Grundlage zur richtigen Suche, aber ich bin leider nicht fündig geworden. Daher nun folgendes Problem mit der Bitte um Hilfe:

Auf einem Netzlaufwerk befinden sich in mehreren Suchordner beliebige Dateien und auch Unterordner. Der Suchordner ist in folgender Struktur zu finden:

Laufwerk X:

Dir1
Dir12
Dir123
Dir1234
DirSuchordner1
Beliebiger Inhalt (Dateien + Ordner)
DirSuchordner2
Beliebiger Inhalt (Dateien + Ordner)
DirSuchordner3
Beliebiger Inhalt (Dateien + Ordner)


Jeder dieser Suchordner existiert auch auf einem weiteren Laufwerk und hat dort jeweils den Unterordner Zielordner. In diesen Zielordner soll der Inhalt aus den jeweiligen Suchordnern verschoben werden. Nach dem Vorgang soll die Struktur dann wie folgt aussehen:

Laufwerk Y:

Dir1
Dir12
Dir123
Dir1234
DirSuchordner1
Zielordner1
Beliebiger Inhalt (Dateien + Ordner)
DirSuchordner2
Zielordner2
Beliebiger Inhalt (Dateien + Ordner)
DirSuchordner3
Zielordner3
Beliebiger Inhalt (Dateien + Ordner)


Durch einen anderen Forums Beitrag habe ich einen Code finden können durch den ich den Verschiebevorgang realisiert bekomme, jedoch nicht mit den variablen Ebenen und auch nicht Dateien UND Unterordner. Eventuell ist jemand so gütig und kann mir mit einem Code helfen oder auf eine vielleicht schon fertige Lösung verweisen?

Vielen Dank im Voraus für eure Antworten!

Content-Key: 341311

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

Printed on: April 20, 2024 at 00:04 o'clock

Mitglied: 133417
133417 Jun 28, 2017 updated at 13:06:21 (UTC)
Goto Top
Moin,
Powershell(min 3.0) z.B.:
$searchfoldernames = @("Suchordner1","Suchordner2","Suchordner3")  
$source = "X:\Root"  
$target = "Y:\Root"  
gci -LiteralPath $source -Recurse -Directory -Include $searchfoldernames | %{
    $t = gci -LiteralPath $target -Recurse -Directory -Include $_.Name | ?{$_.GetDirectories("Zielordner")} | %{$_.GetDirectories("Zielordner").FullName}  
    if ($t){
        gci -LiteralPath $_.FullName -Recurse | move-item -Destination $t -Force -Verbose
    }
}
Gruß