Robocopy löscht Files nach dem Kopieren auf Zielserver
Hi
Ich habe ein kleines Problem und hoffe jemand kann mir weiterhelfen?
Ausgangslage ist eigentlich ganz simpel: Ich möchte eine Verzeichnisstruktur von serverX nach serverY bringen ohne, dass die Berechtigungen mitgenommen werden.
Problem: Die Verzeichnisse und Files werden kopiert, gewisse Verzeichnisse werden aber nach dem kopieren wieder automatisch gelöscht.
Folgender Code liegt vor (anonymisiert - deshalb unsinnige Bezeichnungen ;) )
Liebe Grüsse
Ich habe ein kleines Problem und hoffe jemand kann mir weiterhelfen?
Ausgangslage ist eigentlich ganz simpel: Ich möchte eine Verzeichnisstruktur von serverX nach serverY bringen ohne, dass die Berechtigungen mitgenommen werden.
Problem: Die Verzeichnisse und Files werden kopiert, gewisse Verzeichnisse werden aber nach dem kopieren wieder automatisch gelöscht.
Folgender Code liegt vor (anonymisiert - deshalb unsinnige Bezeichnungen ;) )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
robocopy \\serverX\Erdbeere\400_IT\10_Partner \\serverY\t$\test12000_Partner\1220_Partnerfirmen\ *.* /MIR /MT:3 /R:3 /w:15 /np /DCOPY:T /A-:HS /log:c:\temp\400_AR_10_Partner.log
robocopy \\serverX\Erdbeere\400_IT\11_Schmiede \\serverY\t$\test4000_Schmiede\4300_AR_Schmiede *.* /MIR /MT:3 /R:3 /w:15 /np /DCOPY:T /A-:HS /log:c:\temp\400_AR_11_Schmiede.log
robocopy \\serverX\Erdbeere\400_IT\1_sourcing \\serverY\t$\test4000_Schmiede\4300_AR_Schmiede *.* /MIR /MT:3 /R:3 /w:15 /np /DCOPY:T /A-:HS /log:c:\temp\400_AR_1_sourcing.log
robocopy \\serverX\Erdbeere\400_IT\20_Struktur \\serverY\t$\test1000_Struktur\1030_AR_Struktur *.* /MIR /MT:3 /R:3 /w:15 /np /DCOPY:T /A-:HS /log:c:\temp\400_AR_20_Struktur.log
robocopy \\serverX\Erdbeere\400_IT\21_REM \\serverY\t$\test4000_Schmiede\4300_AR_Schmiede *.* /MIR /MT:3 /R:3 /w:15 /np /DCOPY:T /log:c:\temp\400_AR_21_REM.log
robocopy \\serverX\Erdbeere\400_IT\22_Linzer \\serverY\t$\test1000_Struktur\1030_AR_Struktur *.* /MIR /MT:3 /R:3 /w:15 /np /DCOPY:T /A-:HS /log:c:\temp\400_AR_22_Linzer.log
robocopy \\serverX\Erdbeere\400_IT\30_AR_Hilfe \\serverY\t$\test000_Mitarbeiteranfragen\010_Anleitungen *.* /MIR /MT:3 /R:3 /w:15 /np /DCOPY:T /A-:HS /log:c:\temp\400_AR_30_AR_Hilfe.log
robocopy \\serverX\Erdbeere\400_IT\51_Weltweite Seiten \\serverY\t$\test1000_Struktur\1030_AR_Struktur *.* /MIR /MT:3 /R:3 /w:15 /np /DCOPY:T /A-:HS /log:c:\temp\400_AR_51_Weltweite Seiten.log
robocopy \\serverX\Erdbeere\400_IT\530_Nutzniessung \\serverY\t$\test6000_Lehrmittel\6100_Lizenzen *.* /MIR /MT:3 /R:3 /w:15 /np /DCOPY:T /A-:HS /log:c:\temp\400_AR_530_Nutzniessung.log
robocopy \\serverX\Erdbeere\400_IT\54_VHS_Kasette \\serverY\t$\test6000_Lehrmittel\6100_Lizenzen *.* /MIR /MT:3 /R:3 /w:15 /np /DCOPY:T /A-:HS /log:c:\temp\400_AR_54_VHS_Kasette.log
robocopy \\serverX\Erdbeere\800_Vorsinflut \\serverY\t$\test4000_Schmiede\4200_ErdbeerSchmiede *.* /MIR /MT:3 /R:3 /w:15 /np /DCOPY:T /A-:HS /log:c:\temp\800_Vorsinflut.log
robocopy \\serverX\Erdbeere\Firma Einanderermacht\Geld \\serverY\t$\test4000_Schmiede\4200_ErdbeerSchmiede *.* /MIR /MT:3 /R:3 /w:15 /np /DCOPY:T /A-:HS /log:c:\temp\Firma Einanderermacht_Geld.log
robocopy \\serverX\Erdbeere\Firma Einanderermacht\Einblick \\serverY\t$\test2000_Einanderermachts\2100_IT\Einblick *.* /MIR /MT:3 /R:3 /w:15 /np /DCOPY:T /A-:HS /log:c:\temp\Firma Einanderermacht_Einblick.log
robocopy \\serverX\Erdbeere\Firma Einanderermacht\Portfolio \\serverY\t$\test4000_Schmiede\4300_AR_Schmiede *.* /MIR /MT:3 /R:3 /w:15 /np /DCOPY:T /A-:HS /log:c:\temp\Firma Einanderermacht_Portfolio.log
robocopy \\serverX\Erdbeere\Firma Einanderermacht\SALO_Uri_casa \\serverY\t$\test1000_Struktur\1010_Milchstrasse *.* /MIR /MT:3 /R:3 /w:15 /np /DCOPY:T /A-:HS /log:c:\temp\Firma Einanderermacht_SALO_Uri_casa.log
robocopy \\serverX\Erdbeere\Firma Einanderermacht\Brötchen \\serverY\t$\test4000_Schmiede\4300_AR_Schmiede *.* /MIR /MT:3 /R:3 /w:15 /np /DCOPY:T /A-:HS /log:c:\temp\Firma Einanderermacht_Brötchen.log
robocopy \\serverX\Erdbeere\Firma Einanderermacht\AR_Einschuss Vorsinnflut \\serverY\t$\test4000_Schmiede\4200_ErdbeerSchmiede *.* /MIR /MT:3 /R:3 /w:15 /np /DCOPY:T /A-:HS /log:c:\temp\Firma Einanderermacht_AR_Einschuss Vorsinnflut.log
robocopy \\serverX\Erdbeere\Platt \\serverY\t$\test1000_Struktur\1030_AR_Struktur *.* /MIR /MT:3 /R:3 /w:15 /np /DCOPY:T /A-:HS /log:c:\temp\Platt.log
robocopy \\serverX\Erdbeere\Schmiede \\serverY\t$\test4000_Schmiede\4300_AR_Schmiede *.* /MIR /MT:3 /R:3 /w:15 /np /DCOPY:T /A-:HS /log:c:\temp\Schmiede.log
robocopy \\serverX\Erdbeere\Hilfe \\serverY\t$\test80000_KundenHilfe *.* /MIR /MT:3 /R:3 /w:15 /np /DCOPY:T /A-:HS /log:c:\temp\Hilfe.log
robocopy \\serverX\Erdbeere\Sagmal \\serverY\t$\test14000_Sagmal *.* /MIR /MT:3 /R:3 /w:15 /np /DCOPY:T /A-:HS /log:c:\temp\Sagmal.log
Liebe Grüsse
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 569405
Url: https://administrator.de/forum/robocopy-loescht-files-nach-dem-kopieren-auf-zielserver-569405.html
Ausgedruckt am: 17.04.2025 um 20:04 Uhr
17 Kommentare
Neuester Kommentar
Hallo,
1. Zuwenig Informationen. Wie man eine Frage richtig stellt.
Also, wie sieht Dein Robocopy Befelh denn aus?
Hast Du /MIR im Parameter?
Gruss Penny.
1. Zuwenig Informationen. Wie man eine Frage richtig stellt.
Also, wie sieht Dein Robocopy Befelh denn aus?
Hast Du /MIR im Parameter?
Gruss Penny.
Hallo @Whoisfoxmulder, (by X-Files)
es sieht so aus als würden die /mir Parameter nicht tief genug aufgelöst und deswegen findet er wohl die anderen Verzeichnisse und dafür /mir die Daten ja nicht mehr im Original Ordner vorhanden sind werden sie im neuen Ordner gelöscht durch jeweils die folgenden /mir Befehle.
Werden die Robocopy Befehle einzeln abgearbeitet solltest du den Fehler eigentlich sehen können.
Wird es als Batch gestartet rödelt er natürlich alles durch und die Ergebnisse sind fehlerhaft.
*.* kannst du glaub ich weglassen da /mir sowieso alles spiegelt!
Ich bin mir nicht ganz sicher aber bei einer Batchdatei musst du den Pointer mit dem CD Befehl in das entsprechende Verzeichnis setzten da /mir sonst vom ersten Pfad ausgeht und alle nachfolgenden Daten die im ersten Pfad nicht enthalten sind löscht.
es sieht so aus als würden die /mir Parameter nicht tief genug aufgelöst und deswegen findet er wohl die anderen Verzeichnisse und dafür /mir die Daten ja nicht mehr im Original Ordner vorhanden sind werden sie im neuen Ordner gelöscht durch jeweils die folgenden /mir Befehle.
Werden die Robocopy Befehle einzeln abgearbeitet solltest du den Fehler eigentlich sehen können.
Wird es als Batch gestartet rödelt er natürlich alles durch und die Ergebnisse sind fehlerhaft.
*.* kannst du glaub ich weglassen da /mir sowieso alles spiegelt!
Ich bin mir nicht ganz sicher aber bei einer Batchdatei musst du den Pointer mit dem CD Befehl in das entsprechende Verzeichnis setzten da /mir sonst vom ersten Pfad ausgeht und alle nachfolgenden Daten die im ersten Pfad nicht enthalten sind löscht.
Moin,
so z.B.
CLS
CD C:\Erdbeere\400_IT\10_Ppartner
robocopy C:\Erdbeere\400_IT\10_Ppartner D:\serverY\t$\test12000_Partner\1220_Partnerfirmen\ /MIR /MT:3 /R:3 /w:15 /np /DCOPY:T /A-:HS /log:c:\temp\400_AR_10_Partner.log
(jetzt wird der /mir Befehl im Ordner 10_Ppartner ausgeführt und abgefragt, eine exakte Kopie des Pfades ab der Stammwurzel wird im Ziel erstellt.)
Pause
CD C:\Erdbeere\400_IT\11_Schmiede
robocopy C:\Erdbeere\400_IT\11_Schmiede D:\serverY\t$\test4000_Schmiede\4300_AR_Schmiede /MIR /MT:3 /R:3 /w:15 /np /DCOPY:T /A-:HS /log:c:\temp\400_AR_11_Schmiede.log
(jetzt wird der /mir Befehl im Ordner 11_Schmiede ausgeführt und abgefragt, eine exakte Kopie des Pfades ab der Stammwurzel wird im Ziel erstellt.)
Pause
usw.
den Pause Befehl nur bis das Skript einwandfrei läuft, der Parameter /e kopiert zwar leere Unterverzeichnisse, jedoch löscht es keine alten Daten falls das gewünscht ist, das macht der /mir Befehl.
so z.B.
CLS
CD C:\Erdbeere\400_IT\10_Ppartner
robocopy C:\Erdbeere\400_IT\10_Ppartner D:\serverY\t$\test12000_Partner\1220_Partnerfirmen\ /MIR /MT:3 /R:3 /w:15 /np /DCOPY:T /A-:HS /log:c:\temp\400_AR_10_Partner.log
(jetzt wird der /mir Befehl im Ordner 10_Ppartner ausgeführt und abgefragt, eine exakte Kopie des Pfades ab der Stammwurzel wird im Ziel erstellt.)
Pause
CD C:\Erdbeere\400_IT\11_Schmiede
robocopy C:\Erdbeere\400_IT\11_Schmiede D:\serverY\t$\test4000_Schmiede\4300_AR_Schmiede /MIR /MT:3 /R:3 /w:15 /np /DCOPY:T /A-:HS /log:c:\temp\400_AR_11_Schmiede.log
(jetzt wird der /mir Befehl im Ordner 11_Schmiede ausgeführt und abgefragt, eine exakte Kopie des Pfades ab der Stammwurzel wird im Ziel erstellt.)
Pause
usw.
den Pause Befehl nur bis das Skript einwandfrei läuft, der Parameter /e kopiert zwar leere Unterverzeichnisse, jedoch löscht es keine alten Daten falls das gewünscht ist, das macht der /mir Befehl.
Moin,
der "Befehl" CD springt in das angegebene Verzeichnis:
Des weiteren kannst du dir das *.* "klemmen". Robocopy kopiert per se alles, außer, du schrängst das auf Dateien ein/ filterst dDateien aus (Parameter /XF bzw. /XD)
Aber das sagt dir Robocopy ja auch in Zeile 11:
Verstehe deine ROBOCOPY_Probleme nicht.
Wenn ich das hier richtig lese, willst du eine 1:1-Kopie deines Quellpfades am Ziel haben, inkl. der ACLs, richtig?
Dann wäre folgender Code doch sinnvoll:
Was welcher Parameter bedeutet kannst mit
selbst nachlesen.
Edit:
/COPYALL durch COPY:DTSO ersetztm da du die Attribute ja nicht benötigst (/A-:HS)
Gruß
em-pie
der "Befehl" CD springt in das angegebene Verzeichnis:
C:\>cd /?
Wechselt das Verzeichnis oder zeigt dessen Namen an.
CHDIR [/D] [Laufwerk:][Pfad]
CHDIR [..]
CD [/D] [Laufwerk:][Pfad]
CD [..]
.. Gibt an, dass Sie in das übergeordnete Verzeichnis wechseln möchten.
Des weiteren kannst du dir das *.* "klemmen". Robocopy kopiert per se alles, außer, du schrängst das auf Dateien ein/ filterst dDateien aus (Parameter /XF bzw. /XD)
Aber das sagt dir Robocopy ja auch in Zeile 11:
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
robocopy CD \\serverX\Erdbeere\400_IT\10_Partner \\serverY\t$\test1200_Partner\1220_Partnerfirmen\ *.* /MIR /MT:3 /R:3 /w:15 /np /DCOPY:T /A-:HS /log:c:\temp\40_AR_10_Schmiede.log
-------------------------------------------------------------------------------
ROBOCOPY :: Robustes Dateikopieren für Windows
-------------------------------------------------------------------------------
Gestartet: Sonntag, 3. Mai 2020 14:27:02
Quelle - C:\copy\CD\
Ziel - \\serverX\Erdbeere\400_IT\10_Partner\
FEHLER: Ungültiger Parameter #3 : "\\serverY\t$\test1200_Partner\1220_Partnerfirmen\"
Verstehe deine ROBOCOPY_Probleme nicht.
Wenn ich das hier richtig lese, willst du eine 1:1-Kopie deines Quellpfades am Ziel haben, inkl. der ACLs, richtig?
Dann wäre folgender Code doch sinnvoll:
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
SET src=\\serverX\Erdbeere\400_IT\10_Partner
SET dst=\\serverY\t$\test12000_Partner\1220_Partnerfirmen
SET logtest=\\serverX\logs\myCopy_test.log
SET logprod=\\serverX\logs\myCopy_prod.log
echo Dies ist der Testlauf
ROBOCOPY.exe %src% %dst% /L /COPY:DTSO /MIR /R:3 /W:15 /ZB /TS /LOG+:%logtest% /TEE /FP
echo.
echo Dies ist der Kopiervorgang
ROBOCOPY.exe %src% %dst% /COPY:DTSO /MIR /R:3 /W:15 /ZB /TS /LOG+:%logprod% /TEE /FP
PAUSE
Was welcher Parameter bedeutet kannst mit
1
ROBOCOPY /?
Edit:
/COPYALL durch COPY:DTSO ersetztm da du die Attribute ja nicht benötigst (/A-:HS)
Gruß
em-pie
Zitat von @Whoisfoxmulder:
Hi @em-pie
Danke für Deine Antwort.
Mein Problem ist, dass der /MIR Befehl mir Daten auf dem Zielserver wieder löscht, wenn er die nächste Zeile abarbeitet.
s. u.Hi @em-pie
Danke für Deine Antwort.
Mein Problem ist, dass der /MIR Befehl mir Daten auf dem Zielserver wieder löscht, wenn er die nächste Zeile abarbeitet.
serverX hat folgende Ordner A, B, C (und darin enthaltene Unterordner) und entsprechende Berechtigungen.
Die Berechtigungen sollen nicht übernommen werden, sondern diejenigen im Zielserver - es gibt ne neue Struktur.
serverY hat nur noch Ordner D und darauf neu gesetzte Berechtigungen.
Nun soll Robocopy die Inhalte von A, B und C in den Ordner D kopieren und dessen Berechtiungen übernehmen. Die Attribute (Erstelldatum etc.) sollen aber erhalten bleiben.
OK, dann /COPY:DATDie Berechtigungen sollen nicht übernommen werden, sondern diejenigen im Zielserver - es gibt ne neue Struktur.
serverY hat nur noch Ordner D und darauf neu gesetzte Berechtigungen.
Nun soll Robocopy die Inhalte von A, B und C in den Ordner D kopieren und dessen Berechtiungen übernehmen. Die Attribute (Erstelldatum etc.) sollen aber erhalten bleiben.
Aktuell überschreibt mir Robocopy den Inhalt in Ordner D nach jedem Durchlauf. Am Schluss habe ich nur noch Inhalt von Ordner C in Ordner D und A sowie B fehlen.
Und warum nutzt du dann /MIR?
/MIR ist /PURGE + /E (Hilfe kannst du ja lesen)
/E :: Kopiert Unterverzeichnisse, einschlieálich leerer
Unterverzeichnisse.
/PURGE :: Löscht Zieldateien/-verzeichnisse, die in der Quelle
nicht mehr vorhanden sind.
/MIR :: Spiegelt eine Verzeichnisstruktur
(Entspricht "/E" mit "/PURGE").
Da bin ich gerade raus.
Im Zweifel am Ende die Rechte mit dem Zusatztool icacls neu setzen:
https://www.mos-computer.de/pages/posts/mittels-script-rechte-auf-dateie ...
Im Zweifel am Ende die Rechte mit dem Zusatztool icacls neu setzen:
https://www.mos-computer.de/pages/posts/mittels-script-rechte-auf-dateie ...