poldimuc
Goto Top

Robocopy soll nur spezielle Unterordner kopieren

Guten Abend,

ich möchte mit Robocopy nur spezielle Ordner einer Ordnerstruktur incl. der übergeordneten Ordnerstruktur kopieren (siehe Bild 1 Quellstruktur und Bild 2 kopierte Struktur). Es soll nur noch der Parameter-Ordner auf dem Zielordner zu finden sein. Klar könnte ich den Befehl wie folgt ausführen "robocopy d:\datensicherung \\server\Kunden *.* /XD Bilder /S" wenn aber in dem Kundenordner weitere Ordner sein können muss ich alle manuell ausschließen. Leider ist der Parameterordner unterschiedlich tief in der Ordnerstruktur versteckt.

Hat jemand eine Idee wie ich das lösen kann?

Grüße Jochen
kundenstruktur002
kundenstruktur001

Content-Key: 348707

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

Printed on: April 25, 2024 at 14:04 o'clock

Member: rubberman
rubberman Sep 10, 2017, updated at Sep 11, 2017 at 06:59:59 (UTC)
Goto Top
Das wirst du mit einem ROBOCOPY Aufruf nicht hinbekommen.
Vielleicht so:
@echo off &setlocal DisableDelayedExpansion
set "src=D:\Datensicherung"  
set "dst=\\server\Kunden"  

pushd "%src%"  
for /f "delims=" %%i in ('dir /ad /b /s "Parameter"') do (  
  set "f=%%i"  
  setlocal EnableDelayedExpansion
  robocopy "!f:%cd%\=!" "!dst!!f:%cd%=!" *.* /s  
  endlocal
)
popd
Grüße
rubberman
Member: NetzwerkDude
NetzwerkDude Sep 11, 2017 updated at 12:23:52 (UTC)
Goto Top
#rooverzeichnis welches durchsucht werden soll
$QuellPfad = "D:\Files"  

#zielverzeichnis der backups
$ZielPfad = "D:\Backupverzeichnis"  

#Ordnernamen nach denen gesucht werden soll
$Parameter = "Suchparameter"  

# Die kompletten Pfade der gesuchten Ordner ausgeben
$Paths = Get-ChildItem -Directory $QuellPfad -Recurse | where {$_.Name -match $Parameter} | % {$_.FullName}

# Die gefundenene Ordner per Robocopy ins ZielVerzeichnis kopieren, dabei den kompletten pfad rekonstruien (ohne den laufwerksbuchstaben, da sonst ein ":" im Namen ist) 
$Paths | % {robocopy $_ (split-path $_ -NoQualifier).ForEach({"$ZielPfad$_"}) /E}  

Habe das mal so kurzerhand vor der Mittagspause entwickelt - kann sein das da noch fehler sind, teste es auf jeden fall in einem nichtproduktivverzeichnis face-smile

PS: Ist PowerShell 4