Robocopy einzelner Datei kopiert auch gleichebnige Ordner allerdings leer
Hallo,
ich hab eine Batch-Datei, die von einer Daten/Ordner-Strukter nur gewisse Ordner und Strukturen an eine andere Stelle kopiert.
dazu benutzte ich Robocopy und den \MIR Befehl.
Die Ordnerstruktur zu kopieren klappt auch.
nur die kopie einer bestimmten Datei Funktioniert nicht optimal.
Die Datei wird zwar kopiert aber auch alle Ordner auf der selben Ordnerebene wie die zu kopierende Datei werden angelegt, aber ohne Inhalt.
Ich habe mir halt einen Block angelegt in dem ich dann nur entweder Verzeichnis oder Verzeichnis und kopierende Datei angeben muss ...
evtl. könnte man auch eine Liste übergeben mit kopierenden Datein und eine Liste mit Ordnern ... allerdings liegen die verschieden tief
im Ordnerbaum und sind auch teilweise gleich von Namen her.
Daher hätt ich die ca 20 Dateien bzw Verzeichnisse einzeln angewählt ...
REM * Datei kopieren *
REM
REM * Quelle: Entwicklerspeicherpfad *
set copypath=BIB\documentation\pneumatics
set copyfile=BIB_pneumatics.pdf
set BIBsource=c:\%copypath%
Rem Fürs Log-File
set log=BIBrelease
REM
REM * Ziel: öffentliche Benutzer-BIB
set BIBdrv=m:\doku\cdr
set BIBLdir=%copypath%
REM
REM * Spiegeln *
set MIR=/MIR
REM /MIR löscht Dateien und Verzeichnisse im Ziel, die in der Quelle nicht mehr existieren
REM (Verz. löschen, die in Quelle nicht mehr vorhanden sind)
echo.
echo *
REM
REM
REM * Kopieren und Logfile anlegen ***
robocopy %BIBsource%\ %BIBdrv%\%BIBdir% %copyfile% %MIR% /LOG+:%log%.log /NP
Mache mit Batchdateien noch nicht so viel bzw bin da erst recht am Anfnag.
Lösungsvorschläge bzw Verbesserungsvorschläge sind gern gesehn!
Danke!
ich hab eine Batch-Datei, die von einer Daten/Ordner-Strukter nur gewisse Ordner und Strukturen an eine andere Stelle kopiert.
dazu benutzte ich Robocopy und den \MIR Befehl.
Die Ordnerstruktur zu kopieren klappt auch.
nur die kopie einer bestimmten Datei Funktioniert nicht optimal.
Die Datei wird zwar kopiert aber auch alle Ordner auf der selben Ordnerebene wie die zu kopierende Datei werden angelegt, aber ohne Inhalt.
Ich habe mir halt einen Block angelegt in dem ich dann nur entweder Verzeichnis oder Verzeichnis und kopierende Datei angeben muss ...
evtl. könnte man auch eine Liste übergeben mit kopierenden Datein und eine Liste mit Ordnern ... allerdings liegen die verschieden tief
im Ordnerbaum und sind auch teilweise gleich von Namen her.
Daher hätt ich die ca 20 Dateien bzw Verzeichnisse einzeln angewählt ...
REM * Datei kopieren *
REM
REM * Quelle: Entwicklerspeicherpfad *
set copypath=BIB\documentation\pneumatics
set copyfile=BIB_pneumatics.pdf
set BIBsource=c:\%copypath%
Rem Fürs Log-File
set log=BIBrelease
REM
REM * Ziel: öffentliche Benutzer-BIB
set BIBdrv=m:\doku\cdr
set BIBLdir=%copypath%
REM
REM * Spiegeln *
set MIR=/MIR
REM /MIR löscht Dateien und Verzeichnisse im Ziel, die in der Quelle nicht mehr existieren
REM (Verz. löschen, die in Quelle nicht mehr vorhanden sind)
echo.
echo *
REM
REM
REM * Kopieren und Logfile anlegen ***
robocopy %BIBsource%\ %BIBdrv%\%BIBdir% %copyfile% %MIR% /LOG+:%log%.log /NP
Mache mit Batchdateien noch nicht so viel bzw bin da erst recht am Anfnag.
Lösungsvorschläge bzw Verbesserungsvorschläge sind gern gesehn!
Danke!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 250583
Url: https://administrator.de/contentid/250583
Ausgedruckt am: 25.11.2024 um 20:11 Uhr
5 Kommentare
Neuester Kommentar
Zitat von @chrisdi91:
Hallo,
ich hab eine Batch-Datei, die von einer Daten/Ordner-Strukter nur gewisse Ordner und Strukturen an eine andere Stelle kopiert.
dazu benutzte ich Robocopy und den \MIR Befehl.
Gute Grundsatzentscheidung, weil RoboCopy Klasse ist.Hallo,
ich hab eine Batch-Datei, die von einer Daten/Ordner-Strukter nur gewisse Ordner und Strukturen an eine andere Stelle kopiert.
dazu benutzte ich Robocopy und den \MIR Befehl.
Die Ordnerstruktur zu kopieren klappt auch.
Na also.nur die kopie einer bestimmten Datei Funktioniert nicht optimal.
Die Datei wird zwar kopiert aber auch alle Ordner auf der selben Ordnerebene wie die zu kopierende Datei werden angelegt, aber
ohne Inhalt.
Die Datei wird zwar kopiert aber auch alle Ordner auf der selben Ordnerebene wie die zu kopierende Datei werden angelegt, aber
ohne Inhalt.
Ihr immer mit euren alten CMD-Files. Ich nutze RoboCopy schon seit Jahren über VBS und wenn Du es so benutzt (Beispiel aus meinem VB-Script) funktioniert das auch optimal:
On Error Resume Next
objSource = "Z:\_Backups"
objDestination = "G:\_Backups"
objCommand = "RoboCopy.Exe " & Chr(34) & objSource & Chr(34) & " " & Chr(34) & objDestination & Chr(34) & " /MIR /Z /R:5 /W:10"
objShell.Run(objCommand),0,True
objFile.WriteLine ("BACKUPs wurden gesichert")
Du solltest mal die Hilfe von RC aufrufen und Dich mit den Parametern auseinandersetzen. Dann klappt es auch.
Beste Grüsse
Ralph
Hi Du,
ich würde mich zuerst einmal mit den Parametern von RoboCopy auseinandersetzen.
- CMD Fenster öffnen
- "robocopy /?" eingeben - Dann sieht man schon was geht.
- Dann schauen was ich möchte.
- Dann Testweise das ganze mal aufbauen
- Wenn alles wie gewünscht geht: "Produktiv" gehen.
Mein Beispiel war aus meinem persönlichen Visual Basic Script. Der Aufruf (RoboCopy.Exe) und danach die personalisierten Parameter (/MIR /Z /R:5 /W:10) sind immer die gleichen.
Ob man sie in einem CMD-Fenster anwendet oder in einem anderen Script.
Diese habe ich für meine Bedürfnisse angepasst. Bei Dir kann es schon wieder ganz anders Aussehen.
Deswegen:
Schau Dir bitte erst einmal alle Parameter von RC an und entscheide danach welche Bedürfnisse Du hast. Teste es. Sollte danach etwas schief gehen, sind wir ja gerne da
um zu Helfen
Viele Grüsse
Ralph
ich würde mich zuerst einmal mit den Parametern von RoboCopy auseinandersetzen.
- CMD Fenster öffnen
- "robocopy /?" eingeben - Dann sieht man schon was geht.
- Dann schauen was ich möchte.
- Dann Testweise das ganze mal aufbauen
- Wenn alles wie gewünscht geht: "Produktiv" gehen.
Mein Beispiel war aus meinem persönlichen Visual Basic Script. Der Aufruf (RoboCopy.Exe) und danach die personalisierten Parameter (/MIR /Z /R:5 /W:10) sind immer die gleichen.
Ob man sie in einem CMD-Fenster anwendet oder in einem anderen Script.
Diese habe ich für meine Bedürfnisse angepasst. Bei Dir kann es schon wieder ganz anders Aussehen.
Deswegen:
Schau Dir bitte erst einmal alle Parameter von RC an und entscheide danach welche Bedürfnisse Du hast. Teste es. Sollte danach etwas schief gehen, sind wir ja gerne da
um zu Helfen
Viele Grüsse
Ralph
Hallo chrisdi91, willkommen im Forum.
Per Default arbeiten ROBOCOPY mit den Optionen /S und /E. Das ist der Grund warum die Verzeichnisse angelegt werden. Mit der Option /XD kannst du Verzeichnisse angeben, die davon ausgeschlossen werden sollen. Um nicht jedes Verzeichnis einzeln angeben zu müssen, kannst du das * als Wildcardzeichen verwenden.
Da ich mit deiner Variablenjonglage nicht klar komme, hier mal als Einzeiler ...
Grüße
rubberman
Per Default arbeiten ROBOCOPY mit den Optionen /S und /E. Das ist der Grund warum die Verzeichnisse angelegt werden. Mit der Option /XD kannst du Verzeichnisse angeben, die davon ausgeschlossen werden sollen. Um nicht jedes Verzeichnis einzeln angeben zu müssen, kannst du das * als Wildcardzeichen verwenden.
Da ich mit deiner Variablenjonglage nicht klar komme, hier mal als Einzeiler ...
robocopy "C:\quelle" "X:\ziel" "kopiermich.ext" /log+:"protokoll.log" /np /mir /xd *
Grüße
rubberman