Robocopy

Aus Info-Theke
Zur Navigation springen Zur Suche springen

Beispiel für Backup[Bearbeiten]

robocopy c:\source d:\target /s /e /purge /mt:4 /DCOPY:DAT /nfl /ndl /np /LOG+:robocopy.log 
  • /purge: Löschen nicht mehr existierender Datein/Verzeichnisse
  • /DCOPY:DAT D(atum) A(ttributes) T(imestamp) von Verzeichnissen kopieren
  • /nfl: Dateinamen nicht ausgeben, Fehler aber schon
  • /ndl: Verzeichnisse nicht ausgeben
  • /np: keinen Fortschritt ausgeben
  • /mt:4 4 Threads

Script[Bearbeiten]

set SRC1=c:\angela
set DIR1=angela
set SRC2=c:\users\angela\Documents
set DIR2=documents
set SRC3=c:\users\angela\Pictures
set DIR3=pictures
set SRC4=c:\users\angela\Music
set DIR4=music
set SRC5=c:\users\angela\Videos
set DIR5=videos
set SRC6=c:\users\angela\Desktop
set DIR6=desktop
set SRC7=c:\users\angela\Downloads
set DIR7=downloads
set MARK=e:\backup.mrk
set TRG_BASE=e:\backup
set LABEL_1=%TRG_BASE%\.last.backup.id.1
set THREADS=4
if "%1" == "init" goto init
if not exist %MARK% goto err_backup
if exist %LABEL_1% goto isone
set TRG=%TRG_BASE%\sicherung_1
echo "1" > %LABEL_1%
goto next
:isone
set TRG=%TRG_BASE%\sicherung_2
del %LABEL_1% /Y
:next
robocopy %SRC1% %TRG%\%DIR1% /s /e /purge /mt:%THREADS% /DCOPY:DAT /nfl /ndl
robocopy %SRC2% %TRG%\%DIR2% /s /e /purge /mt:%THREADS% /DCOPY:DAT /nfl /ndl
robocopy %SRC3% %TRG%\%DIR3% /s /e /purge /mt:%THREADS% /DCOPY:DAT /nfl /ndl
robocopy %SRC4% %TRG%\%DIR4% /s /e /purge /mt:%THREADS% /DCOPY:DAT /nfl /ndl
robocopy %SRC5% %TRG%\%DIR5% /s /e /purge /mt:%THREADS% /DCOPY:DAT /nfl /ndl
robocopy %SRC6% %TRG%\%DIR6% /s /e /purge /mt:%THREADS% /DCOPY:DAT /nfl /ndl
robocopy %SRC7% %TRG%\%DIR7% /s /e /purge /mt:%THREADS% /DCOPY:DAT /nfl /ndl
goto ready
:init
echo "hi" > %MARK%
mkdir %TRG_BASE%\sicherung_1\%DIR1%
mkdir %TRG_BASE%\sicherung_1\%DIR2%
mkdir %TRG_BASE%\sicherung_1\%DIR3%
mkdir %TRG_BASE%\sicherung_1\%DIR4%
mkdir %TRG_BASE%\sicherung_1\%DIR5%
mkdir %TRG_BASE%\sicherung_1\%DIR6%
mkdir %TRG_BASE%\sicherung_1\%DIR7%
mkdir %TRG_BASE%\sicherung_2\%DIR1%
mkdir %TRG_BASE%\sicherung_2\%DIR2%
mkdir %TRG_BASE%\sicherung_2\%DIR3%
mkdir %TRG_BASE%\sicherung_2\%DIR4%
mkdir %TRG_BASE%\sicherung_2\%DIR5%
mkdir %TRG_BASE%\sicherung_2\%DIR6%
mkdir %TRG_BASE%\sicherung_2\%DIR7%
echo "Laufwerk %TR_BASE% wurde initialisert"
goto end
:err_backup
echo "+++ Kein Sicherungslaufwerk: Bitte mit 'Backup init' markieren"
goto end
:ready
echo "Laufwerk auswerfen und Platte entfernen"
:end
pause