Rico913 0 Geschrieben 31. Januar 2018 Melden Teilen Geschrieben 31. Januar 2018 Hi, leider habe ich noch nicht zu viel Erfahrung und wende mich mit folgendem Problem an euch: Ich möchte mit Robocopy ein Script erstellen, welches Daten aus verschiedenen Quellen in ein Ziel kopiert. Soweit habe ich es auch fertig, aber es hapert an den Unterverzeichnissen @echo off setlocal enabledelayedexpansion set tool=\Quelle1 set source=C:\Bilder\ set target=d:\Methoden\Bilder\ set Date=%date:~-4%-%date:~-7,2%-%date:~-10,2% start /min robocopy %source% %target%\tool /COPY:dt /E /R:2 /NP /TEE /LOG+:D:\Skripte\Log\%date%_quelle1.log Im Quellverzeichnis gibt es folgende Unterverzeichnisse: C:\Bilder\2017\0000-0100\0051 Im Ziel soll es dann so aussehen: D:\Methoden\Bilder\2017\0000-0100\0051\Quelle1\ Bei meinem Script setzt er das "tool" aber an den Anfang und zwar so: D:\Methoden\Bilder\Quelle1\2017\0000-0100\0051\ Hat jemand eine Idee oder ein Lösungsansatz?? Viele Grüsse Rico Zitieren Link zu diesem Kommentar
Dukel 455 Geschrieben 31. Januar 2018 Melden Teilen Geschrieben 31. Januar 2018 Lass mal das "\tool" im Robocopy Aufruf weg. Zitieren Link zu diesem Kommentar
Rico913 0 Geschrieben 31. Januar 2018 Autor Melden Teilen Geschrieben 31. Januar 2018 Wenn ich es weglasse, kopiert robocopy ja ganz hart nach dem Quell- und Zielverzeichnis von Quelle1, Quelle2 und Quelle3 in das selbe Verzeichnis. Ich vergas zu erwähnen, dass auf allen Quellen dieselbe Verzeichnisstruktur besteht und dass das Ziel ein Serverlaufwerk ist. Beim weglassen kopiert er: Quell: C:\Bilder\2017\0000-0100\0051 nach Ziel: D:\Methoden\Bilder\2017\0000-0100\0051\ ...ohne ein Unterverzeichnis mit Quellenname anzulegen. Alternativ ist es auch möglich die Quelle im Dateinamen einzubauen, wenn jemand eine Idee dazu hat. Zitieren Link zu diesem Kommentar
Dukel 455 Geschrieben 31. Januar 2018 Melden Teilen Geschrieben 31. Januar 2018 Dann bau dir ein Script drum herum, welches z.B. alle Quellordner ausliest und Robocopy für jeden Ordner ausführt mit der Quelle dazu. Weiterer Tipp: Nutze UNC Pfade statt gemountete Laufwerksbuchstaben. Zitieren Link zu diesem Kommentar
Rico913 0 Geschrieben 31. Januar 2018 Autor Melden Teilen Geschrieben 31. Januar 2018 Daran wirds bei mir scheitern, ehrlich gesagt hab ich da keine Ahnung, wie ich das Script aufbauen muss :-( Zitieren Link zu diesem Kommentar
Dukel 455 Geschrieben 31. Januar 2018 Melden Teilen Geschrieben 31. Januar 2018 In Powershell: $quelle = 'quelle1' $src = 'C:\temp\src' $dst = 'C:\temp\dst' foreach($folder in (Get-ChildItem $src)){ foreach($folder in (Get-ChildItem $folder.FullName)){ foreach($folder in (Get-ChildItem $folder.FullName)){ $srcPath = $folder.FullName "Src: $srcPath" $dstPath = $folder.FullName.replace($src,$dst) "Dst: $dstPath" $arg = "$srcPath $dstPath\$quelle /E ..." Start-Process -NoNewWindow -Wait -FilePath robocopy.exe -ArgumentList $arg } } } Die Robocopy Argumente müssen noch ergänzt werden. Für das Datum (des Logs) gibt es "get-date" mit entsprechenden Parametern / Formate. 1 Zitieren Link zu diesem Kommentar
Rico913 0 Geschrieben 31. Januar 2018 Autor Melden Teilen Geschrieben 31. Januar 2018 Super .... vielen Dank dafür!!!!!!!!!!!!!!!!!!!! Es läuft. Bis auf den Pfad für das Logfile. Den erkennt Robocopy nicht mehr. Ohne Logfile gehts. Neues Problem: Ich habe ein Rechner mit XP. Da läuft das Skript nicht. Wahrscheinlich wegen fehlendem Powershell. Gibt es für XP eine Unterstützung oder kann man es so kompilieren, dass es "eigenständig" läuft? Zitieren Link zu diesem Kommentar
Dukel 455 Geschrieben 31. Januar 2018 Melden Teilen Geschrieben 31. Januar 2018 https://support.microsoft.com/en-us/help/968929/windows-management-framework-windows-powershell-2-0--winrm-2-0--and-bi Quote WinRM 2.0 and PowerShell 2.0 can be installed on the following supported operating systems: ... Windows XP with Service Pack 3 Den Log Pfad musst du mit Powershell zusammenbauen. %date% gibt es da nicht. Für den Einstig. $datum = get-date -Format 'yyyy-MM-dd_HH-mm' Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.