Robocopy: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(→Script) |
|||
(Eine dazwischenliegende Version von einem anderen Benutzer wird nicht angezeigt) | |||
Zeile 12: | Zeile 12: | ||
== Script == | == Script == | ||
<pre> | <pre> | ||
set | set SRC1=c:\angela | ||
set TRG_BASE= | 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 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 | if exist %LABEL_1% goto isone | ||
TRG= | set TRG=%TRG_BASE%\sicherung_1 | ||
echo "1" > %LABEL_1% | echo "1" > %LABEL_1% | ||
goto next | goto next | ||
:isone | :isone | ||
TRG= | set TRG=%TRG_BASE%\sicherung_2 | ||
del %LABEL_1% /Y | del %LABEL_1% /Y | ||
:next | :next | ||
robocopy % | 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 | :ready | ||
echo "Laufwerk auswerfen und Platte entfernen" | echo "Laufwerk auswerfen und Platte entfernen" | ||
:end | :end | ||
</pre> | pause</pre> |
Aktuelle Version vom 2. August 2022, 15:14 Uhr
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