Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

robocopy MIR gelöschte dateien in quelle auf ziel verschieben anstatt löschen

Frage Sicherheit Backup

Mitglied: lindsche

lindsche (Level 1) - Jetzt verbinden

06.12.2008, aktualisiert 18.10.2012, 15236 Aufrufe, 6 Kommentare

Moin zusammen,

benutze nun schon einige Zeit zufrieden robocopy.

nun ist mir bei meinen privaten sicherung das malheur passiert, dass ich daten auf der quelle gelöscht habe, die robocopy nun im /MIR-Mode natürlich auch nach Ausführung auf dem Ziel gelöscht hat.
nunja unfein, da das löschen nicht beabsichtigt war.

frage nun: gibt es eine elegante lösung gelöschte dateien beim lauf auf dem ziel erstmal in einen ordner zu verschieben anstatt sie direkt zu löschen (wenn möglich mit erhalt der ordnerstruktur?)
ich mein da könnte man bestimmt was mit einem script vor ausführung von robocopy machen, das die nicht mehr vorhandenen dateien eben verschiebt.

aber gibt es nicht vielleicht genau so etwas schon oder lässt sich das doch mit robocopy direkt bewerkstelligen?

hab da leider nix gefunden, daher hier die frage.

cheers,
lindsche
Mitglied: miniversum
07.12.2008 um 10:22 Uhr
Mal ungetestet so:
01.
FOR /F "tokens=1,2 delims=^>" %%i in ('xcopy /D /L /I /H "%quelle" "%ziel%"') do copy "%%j" "c:\sicherung"
So werden alle Dateien die gelöscht oder überschrieben werden würden vorher in ein anderen Verzeichnis kopiert.
Bitte warten ..
Mitglied: bastla
07.12.2008 um 11:41 Uhr
Hallo lindsche und willkommen im Forum!

Wenn ich das richtig verstanden habe, dann etwa so:
01.
@echo off & setlocal 
02.
set "Quelle=D:\Daten" 
03.
set "Sicherung=X:\Sicherung" 
04.
set "Zwischen=X:\Temp\Zwischen" 
05.
 
06.
xcopy /t /i /y "%Sicherung%" "%Zwischen%" 
07.
for /f "tokens=3*" %%i in ('robocopy "%Quelle%" "%Sicherung%" /PURGE /S /L /FP^|findstr /c:"\*EXTRA File"') do call :ProcessFile "%%j" 
08.
goto :eof 
09.
 
10.
:ProcessFile 
11.
set "Z=%~1" 
12.
call set "Z=%%Z:%Sicherung%=%Zwischen%%%" 
13.
echo move %1 "%Z%" 
14.
goto :eof
Vorweg:
Es sollen alle Dateien aus der Sicherung, die in der Quelle nicht mehr vorhanden sind, in einen "Zwischenspeicher" verschoben werden. Der Speicherort dieses "Zwischenspeichers" darf dabei nicht unterhalb des Sicherungsordners liegen (also im Beispiel oben wäre "X:\Sicherung\Zwischen" nicht möglich).

Kurz zum Ablauf:
Damit die Ordnerstruktur beim Verschieben bereits vorhanden ist ("move" erstellt keine Ordner), diese vorweg mit "xcopy" erstellen.

Dann mit "robocopy" ein "purge" simulieren (durch Verwendung von "/L") und die "*EXTRA Fiiles" in einem Unterprogramm einzeln verschieben lassen.

Damit die Ordnerstruktur erhalten bleibt, im Pfad der zu verschiebenden Datei den derzeitigen Basispfad %Sicherung% durch den neuen Basispfad %Zwischen% ersetzen (so würde also etwa aus "X:\Sicherung\Ordner\Datei.txt" "X:\Temp\Zwischen\Ordner\Datei.txt").

Zum Verschieben ist anzumerken, dass wegen des "echo" vor dem "move" (zum Testen) die Befehle nur angezeigt werden - tatsächlich verschoben wird erst nach dem Entfernen des "echo". Noch zu beachten: Im "Zwischenspeicher" befindliche gleichnamige Dateien werden überschrieben (was mE auch sinnvoll ist).
Obwohl durch den Schalter "/L" sicher gestellt sein sollte, dass keine Dateien gelöscht werden, zunächst nur Testdaten verwenden!
[Edit] Das Ausfiltern der zu verschiebenden Dateien mit "findstr" sollte sich durch die Schalter "/NJH /NJS /NDL" ersetzen lassen - habe ich aber nicht wirklich getestet. [/Edit]

Grüße
bastla
Bitte warten ..
Mitglied: A66neu
06.01.2010 um 14:50 Uhr
Also ich hab alles genau nach dieser Aleitung gemacht, das Verschieben funktioniert auch für ca. 50 bis 70 Dateien, danach geschieht nichts mehr, d.h. die Dateien werden im Sicherungsordner nicht gelöscht und nicht in den "Verschiebordner" geschoben.

Kann mir bitte jemand helfen???
Bitte warten ..
Mitglied: bastla
06.01.2010 um 15:14 Uhr
Hallo A66neu und willkommen im Forum!

Vorweg: Hier in diesem Thread sind wir vermutlich ziemlich unter uns - es wäre daher vermutlich sinnvoller, eine neue Frage zu erstellen und auf diesen Beitrag hier zu verweisen ...
Der Fehler ist etwas schwer nachvollziehbar - schau Dir doch einmal an, was
robocopy "%Quelle%" "%Sicherung%" /PURGE /S /L /FP|findstr /c:"\*EXTRA File"
als Ergebnis liefert - als Batch könnte das so gehen:
01.
@echo off & setlocal 
02.
set "Quelle=D:\Daten" 
03.
set "Sicherung=X:\Sicherung" 
04.
set "Zwischen=X:\Temp\Zwischen" 
05.
 
06.
robocopy "%Quelle%" "%Sicherung%" /PURGE /S /L /FP|findstr /c:"\*EXTRA File">"%Zwischen%\Dateiliste.txt" 
07.
notepad "%Zwischen%\Dateiliste.txt"
Es sollten alle Dateien, die in dieser Liste stehen, auch verschoben werden ...

Grüße
bastla
Bitte warten ..
Mitglied: A66neu
08.01.2010 um 12:22 Uhr
Hallo Bastla,

vielen Dank für Deine sehr schnelle Rückmeldung, war jetzt zwei Tage auf Dienstreise, darum konnte ich mich nicht zurückmelden!

Werde gleich mal einen neuen Artikel schreiben, danke


Grüße A66neu
Bitte warten ..
Mitglied: A66neu
21.01.2010, aktualisiert 18.10.2012
Hallo Bastla,

könntest Du mal meinen neuen Thread anschauen, ich habe dort mein Script gepostet, evtl. hast Du ja eine Idee, die Resonanz auf den Beitrag ist auf jeden Fall ganz ganz gering

http://www.administrator.de/forum/robocopy-synchronisation-von-daten-ge ...

ich hoffe Du kannst mir weiterhelfen!!!
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows Netzwerk
Dateien und Ordner verschieben mit Rückfrage (1)

Frage von stefts zum Thema Windows Netzwerk ...

Debian
Debian Zugriff auf gelöschte Dateien entfernen (6)

Frage von kaihummels zum Thema Debian ...

Batch & Shell
gelöst älteste dateien via batch löschen (6)

Frage von cali169 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...