Software Frage Wiederkehre Aufgabe-Kopieren von Datei(en) per Robocopy oder ähnlichem per Skript

Hallo Boardies,

wie beschrieben suche ich eine einfache und zuverlässige Möglichkeit eine immer wiederkehrende Aufgabe für das Kopieren von Datei(en) per Robocopy oder ähnlichem zu erledigen.
Ausserdem soll auf den Zielordner nach 5-10 Läufen, am besten einstellbar in einem Skript, die letzte Version automatisch gelöscht werden.
Im Internet gibt es unzählige Hinweise, aber ich suche hier nach Beispielen aus der Praxis, dem realen Leben sozusagen.
Wer hat hier etwas in der Form schon einmal so umgesetzt?

Bedingungen:
  1. Es soll dazu ausser einem Skript nichts extra installiert werden müssen.
  2. Netzwerkpfade/UNC müssen unterstützt werden.
Danke an dieser Stelle wie immer für jeden Tipp und bitte bleibt alle GESUND. :yo
 
Zuletzt bearbeitet:

RichyZuHause

Alter mit Ego
Hi Chef.

Ich habe mal für einen Kollegen was mit RoboCopy erstellt.

Code:
@echo off
: RoboCopy_Richy.cmd
:
: Verzeichnissynchronisation mit RoboCopy.
: Richy, 09.04.2019
: History
: Richy 09.04.2019 Initial.

: Konfiguration
Set SourceDir="C:\Users\kollege\Weidner\Daten\RoboTest"
Set TargetDir="H:\Mein\Ziel\Verzeichnis"
Set RoboParms=/S /MON:1 /PURGE /NJS /NP /NS
Set RoboExcludeParm=/XF
Set ExcludeFiles=*.bak
:    /S      include subdirs
:    /MON:1  Monotor for every 1 change
:    /FP     log files with pathname
:    /PURGE  delete files in target if deleted in source
:    /TS     Output with time stamp.
:    /NJH    No job header in output
:    /NJS    No job summary
:    /NP     No percentage of copied files in output.
:    /NS     No size in output
:    /NDL    No Dir list
:    /XF     exclude files
: Konfiguration Ende.

: Variablen setzen
Rem Farbe festlegen (1E = gelb auf blau)
COLOR 1E

: Dateinamen dieses Batches ermitteln.
for %%f in (%0) do set bat=%%~nxf
Echo    %bat%: Changed files will by synced every 30s...

rem Echo SourceDir = %SourceDir%
rem Echo TargetDir = %TargetDir%
rem Echo RoboParms = %RoboParms%
rem Echo Exclude   = %ExcludeFiles%

: Execution!
robocopy %SourceDir% %TargetDir% %RoboParms% %RoboExcludeParm% %ExcludeFiles%

Echo.
Echo.
Rem Farbe (1B = hellblau auf blau)
COLOR 1B
rem
echo **************************
echo *****    Result    *******
echo **************************
Echo.
Pause
: 2 Sekunden warten für Meldung oben.
ping -n 2 localhost >nul
:Ende

Hier ist jetzt keine 5-fache Versionierung dabei, aber das Gerüst mit den wichtigsten der unzähligen Parameter steht.
Der Kollege nutzt das Script bis heute noch.
Das Schöne ist, wenn beim Syncen etwas fehlschlägt, RoboCopy bricht immer wieder auf und nicht nur einfach ab.
 

SkAvEnGeR

Master of Tools
hier mal zwei Code-Schipsel von mir zur Anregung

Einfache Versionierung per Schleife mit Löschbefehl
Code:
xcopy "c:\Daten" "E:\Daten vom %date%" /e /r /y /i
for /f "skip=5 delims=" %%i in ('dir /b /o-D /ad "E:\Daten vom *"') do rd /s /q "E:\%%i"

Ermitteln des Wochentags, Übergabe in Variable und Erstellen des angepassten Zielordners
Code:
REM -------------------------------------------------------------------------------------------------
REM Schleife zur Ermittlung des Wochentages -- by SkAv
REM Ermittelt den Wochentag und erstellt ggf. den passenden Ordner
REM Die Backup-Files werden dann in dem jeweiligen Tages-Ordner abgelegt
REM -------------------------------------------------------------------------------------------------
set DOW=
for /f %%g in ('wmic path win32_localtime get dayofweek^|findstr /v /r "^$"') do (
set DOW=%%g)
if %DOW%==0 set DOW=So
if %DOW%==1 set DOW=Mo
if %DOW%==2 set DOW=Di
if %DOW%==3 set DOW=Mi
if %DOW%==4 set DOW=Do
if %DOW%==5 set DOW=Fr
if %DOW%==6 set DOW=Sa

REM -- Unterordner auf Sicherungsmedium erstellen
if not exist %sichpfad%\%DOW%\nul md %sichpfad%\%DOW%
REM -- hier kommt dann der eigentliche Backup-Vorgang

Die Pfade und Variablen sind entsprechend anzupassen
 
Hallo Zusammen,

vielen Dank für eure Bemühungen. Werde ich testen und dann an dieser Stelle wieder berichten.
 
Zuletzt bearbeitet:

the gun

Nowhere Man
Hie noch mal eine ganz simple Variante:
1. mit robocopy jedes Backup in eine eigenes Verzeichnis schreiben.
2. forfiles /p e:\backupverzeichnis /d -30 /c "cmd /c if @isdir==TRUE rmdir /s /q @file"
Löscht hier all Verzeichnisse die älter als 30 Tage sind.
Forfiles hat hier eine ganze Reihe an Möglichkeiten zu selektieren /? hilft da ganz gut.
Robocopy kann zwar auch purgen aber da habe ich immer Probleme dem Datum bekommen.
Ausserdem wird hier nicht nach einer bestimmten Anzahl von Läufen gelöscht.
Ist nur mal so als Anregung.
 
Oben Unten