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 Script (inkl. löschen der Ordner, älter als)

Frage Entwicklung Batch & Shell

Mitglied: DauJoe

DauJoe (Level 1) - Jetzt verbinden

13.05.2013 um 13:06 Uhr, 10492 Aufrufe, 11 Kommentare

Hallo,

ich benötige folgendes Robocopy Script:

Warum Robocopy? Weil die ganzen Attribute der Daten inkl. Berechtigungen mitkopiert werden müssen.

Die Daten sollen aus der QUELLE ins ZIEL kopiert werden.

Die QUELLE beinhaltet Ordner und Dateien.

Im ZIEL soll es nach dem Ausführen des Scripts so aussehen:

Es soll für jeden Tag einen Ordner erstellen, wo die Dateien reinkopiert werden.
Das ist ja noch kein Problem, das hab ich geschafft.

Aber nun folgendes Szenario:

Nach 5 Tagen sind da 5 Ordner.


Wie kann ich das Script konfigurieren, dass alle Ordner, welche älter als 2 Tage sind automatisch gelöscht werden?


Danke & Gruss
Mitglied: WWoodpecker
13.05.2013 um 13:08 Uhr
Ich habe sowas ähnliches schon mal gemacht und habe dafür delage32 genutzt, ist ein Kommandozeilen-Tool in dem Du angeben kannst das Daten älter x Tage gelöscht werden
Bitte warten ..
Mitglied: Penny.Cilin
13.05.2013 um 13:38 Uhr
Hallo,

und hast Du mal an der Eingabeaufforderung
robocopy /? | more
eingegeben?
Die simpleste Anwendung lautet
robocopy <quelle> <ziel>
wie Du es bereits herausgefunden hast.
Hast Du Dir mal den Parameter /MIR angeschaut und gestestet?


Gruss Penny.
Bitte warten ..
Mitglied: DauJoe
13.05.2013 um 13:49 Uhr
/MIR besteht ja eigentlich aus /E und /PURGE. /E kopiert alle vollen und auch leeren Unterverzeichnisse, /PURGE löscht alle Dateien im Zielordner, die in der Quelle nicht mehr vorhanden sind.

Aber möchte ja nur die jeweiligen "2 ältesten" angelegten Backup Ordner löschen.
/MIR löscht ja nur die Daten/Ordner, welche in der Quelle auch nicht mehr vorhanden sind.

Oder hab ich da etwas falsch verstanden?


Danke & Gruss
Bitte warten ..
Mitglied: Penny.Cilin
13.05.2013 um 14:02 Uhr
OK, dann wirst Du zusätzlich zum Robocopy noch ein bißchen batch Skripting tun müssen.
Nutze die Suchfunktion. Es gibt mehrere Beiträge, etwa Bedingung in Abhängigkeit vom Alter einer Datei oder Datum - Uhrzeit einer Datei liegt x Zeit zurück

Oder wie von @WWoodpecker beschrieben nutze delage32.


Gruss Penny.
Bitte warten ..
Mitglied: WWoodpecker
13.05.2013 um 14:03 Uhr
deine Batch sieht dann ungefähr so aus oder?

robocopy C:\Verzeichnis D:\Backup\%DATE% /MIR /SEC /R:1 /W:1 /LOG:C:\LOG\Verzeichnis_%DATE%.txt

robocopy bringt meines Wissens nach keine option mit die dann die %DATE%-Ordner älter 2 Tage löscht, aber die in meinem vorherigen Post beschrieben entweder delage32 oder in einem anderen Forum habe ich ein VBS gefunden, das sich dahingehen beschäftigt:
http://www.coding-board.de/showthread.php/20586-Unterordner-mit-Inhalt- ...
Bitte warten ..
Mitglied: Endoro
13.05.2013 um 14:16 Uhr
Hallo Goalgetter,

für so was hat Microsoft "forfiles" erfunden.

Gruss!
Bitte warten ..
Mitglied: Pjordorf
13.05.2013 um 16:13 Uhr
Hallo,

Zitat von DauJoe:
Aber möchte ja nur die jeweiligen "2 ältesten" angelegten Backup Ordner löschen.
Robocopy kann das nicht. Dazu musst du ein anderes Script verwenden. Wie schon genannt mit ForFiles wäre ein weg.

1 Script welches
- Löschen der alten Dateien / Ordner deiner Wahl vornimmt
- per Robocopy neu Sicherung deiner Wahl erstellen in neuem Ordner deiner Wahl (Datum abfragen)
Fetisch

Gruß,
Peter
Bitte warten ..
Mitglied: DauJoe
13.05.2013, aktualisiert um 18:47 Uhr
Danke für eure Kommentare.

Ich habe nun für die Backups:

save.bat:
robocopy PFAD R:\Backups\%date% /MIR /SEC /R:1 /W:1 /log:R:\logs\%date%.log /NP /TEE


delete.bat
FORFILES /P "PFAD" /S /M *.* /D -0 /C "CMD /C del /Q @File"


Ich konnte es nicht wirklich testen, da ich keine alten Ordner momentan zur Verfügung habe, die ich auch löschen kann.
Wenn ich /D auf 0 setze (Testweise), löscht er mir alles, aber die leeren Unterordner bleiben bestehen. Kann man die auch noch löschen?


Laut MS ist /D: "Selects files with a last modified date within the specified time frame."
Zählt ein File, welches nur vom Robocopy kopiert wurde denn auch als modifiziert?

Nicht, dass mir das Script dann plötzlich alle Daten löscht, da die ja evtl. im Quellenverzeichnis länger nicht geöffnet/modifiziert wurden...

Gruss
Bitte warten ..
Mitglied: Endoro
13.05.2013 um 21:17 Uhr
Du wolltest doch Ordner löschen?
Das geht mit "RD /q /s", nicht mit "DEL".

Gruss!
Bitte warten ..
Mitglied: DauJoe
14.05.2013 um 16:03 Uhr
Danke dir Endoro!

FORFILES /P "R:\Backups" /S /M *.* /D -10 /C "CMD /C RD /q /s @File"


Nun erhalte ich aber plörtlich die Meldung "The directory name is invalid".


Der pfad R:\Backups existiert allerdings und ist auch verfügbar.
Bitte warten ..
Mitglied: Endoro
14.05.2013, aktualisiert um 22:12 Uhr
Hast du ein englisches Windows? Versuch es mal so:
01.
FORFILES /P "R:\Backups" /S /M * /D -10 /C "CMD /C if /i @isdir==TRUE RD /q /s @File"
Im Ordner "R:\Backups" sollten natürlich noch weitere Ordner drinstecken, damit das funktionieren kann.

Gruss!
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(2)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Dateien (keine Ordner) löschen die älter sind als (4)

Frage von siziigilendirmez zum Thema Batch & Shell ...

Windows 10
Löschen von Ordner mit Dateien (3)

Frage von jerry32 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...