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
GELÖST

Robocopy erstellt im differentiellen Backup-Ordner auch leere Verzeichnisse

Frage Entwicklung Batch & Shell

Mitglied: nother

nother (Level 1) - Jetzt verbinden

13.04.2013 um 15:25 Uhr, 2543 Aufrufe, 5 Kommentare, 1 Danke

Hallo Leute,
brauche mal hier ein wenig Unterstützung zum Thema Robocopy und Batch-Script!
Das Script ist natürlich nicht komplett aus meiner Feder, die Code-Schnipsel sind hier und da zusammengetragen.
Insbesondere bitte ich Biber und Bastla sich das ganze mal näher zu betrachten...
Bin sonst nur stiller Leser und habe eure Namen schon des Öfteren im Zusammenhang mit Batch-Skripten gelesen.
Robocopy nutze ich schon sehr lange, daher kenne ich die Parameter eigentlich ganz gut.

Zwei "Anliegen" habe ich aber dennoch: Dieses Script macht am 01. eines Monats ein Vollbackup und den restlichen Tagen
ein differentielles. Klappt auch soweit super!
Aber: In den differentiellen Ordnern werden immer die komplette Verzeichnisstruktur erstellt, obwohl kein Archiv-Bit gesetzt ist.
Ist zwar nur ein, für mich "Schönheitsfehler", nervt mich aber ungemein. Kann man das nicht irgendwie beseitigen?

Das andere Problem ist die offensichtliche Ahnungslosigkeit wie man "schöne Scripte" schreibt.
Da ich nur rudimentären Plan habe und vieles durch "Try and error" erlernt habe, ist das Script nicht wirklich "sauber".
Z.B. die Sache mit der doppelten Logfile-Zusammenfassung. Hatte Probleme mit dem Errorlevel...
Geht das vielleicht eleganter?
Auch das "Umschalten" am 01. mit den anderen Parametern find ich nicht wirklich schön.
Wenn einer Lust und Zeit hat, kann er ja gern seine Meinung dazu äußern.

Vielen Dank

01.
:: Robocopysicherung Nas01 incl. Mailversandt 
02.
:: Zu befüllen sind die Variablen für Robocopy und dessen Logfile 
03.
:: sowie optional den Mailer 
04.
::-------------------------------------------------------------------------------- 
05.
::Achtung! Ganz unten werden nur die letzten 5 Versionen behalten----------------- 
06.
::ist aber zur Sicherheit auskommentiert ----------------------------------------- 
07.
::-------------------------------------------------------------------------------- 
08.
@ECHO OFF & SETLOCAL 
09.
::		------------------ Codepage ändern für Umlaute im Log -------------------- 
10.
chcp 1252 
11.
::		------------------ Variablen leeren -------------------------------------- 
12.
set mydate= 
13.
set Quelle= 
14.
set Ziel= 
15.
set par= 
16.
set Logfile= 
17.
set befehl= 
18.
set mailsrv= 
19.
set mailuser= 
20.
set mailuserPW= 
21.
set mailfrom= 
22.
set betreff= 
23.
set pathblat= 
24.
set mailto= 
25.
set body= 
26.
::		------------------ eventuell alte vorhandene Dateien löschen ------------- 
27.
if exist temp.txt del temp.txt 
28.
if exist logfile.log del logfile.log 
29.
::		------------------ allgemeine Variablen: Datum zerlegen 1 ---------------- 
30.
for /F "tokens=1-3 delims=/. " %%a in ('date/T') do set mydate=%%c-%%b-%%a 
31.
::		------------------ für Monats-Ordner anlegen: Datum zerlegen 2 ----------- 
32.
set TT=%date:~0,2% 
33.
set MM=%date:~3,2% 
34.
set YYYY=%date:~6,4% 
35.
::		------------------ Variable Quelle --------------------------------------- 
36.
set quelle=\\NAS-IP\Backup 
37.
::		------------------ Variable Zielverzeichnis ------------------------------ 
38.
set backuproot=f:\ 
39.
::		------------------ lege ein Monatsordner an ------------------------------ 
40.
set ziel=%BackupRoot%\%MM%\%mydate% 
41.
set par=/S /A /MT /NP /NDL /V /FP /XJD /TS /FFT /TEE /R:1 /W:1 /XF desktop.ini Thumbs.db /XD $RECYCLE.BIN  
42.
::		------------------ Logfile für Robocopy ---------------------------------- 
43.
::		------------------ ACHTUNG: Pfad muss vorhanden sein! -------------------- 
44.
set log=/LOG:%BackupRoot%Logs\%mydate%.log 
45.
::		------------------ Variablen für den Mailer ------------------------------ 
46.
set logfile=%BackupRoot%Logs\%mydate%.log 
47.
set mailsrv=hosteurope.de:587 
48.
set mailuser= 
49.
set mailuserPW= 
50.
set mailfrom=robocopy@firma.de 
51.
set pathblat=C:\Programme\blat\ 
52.
set mailto=admin@firma.de 
53.
set body=temp.txt 
54.
::		------------------ Attribut am 01. des Monats zurücksetzen --------------- 
55.
::		------------------ den Parameter /A durch /M ersetzen -------------------- 
56.
::		------------------ Vollständige Sicherung und Attrib /A raus ------------- 
57.
::		------------------ Darauffolgenede Tage werden differentiell gesichert --- 
58.
if %TT% == 01 attrib +a "%quelle%\"*.* /s /d & set par=/S /M /MT /NP /NDL /V /FP /XJD /TS /FFT /TEE /R:1 /W:1 /XF desktop.ini Thumbs.db /XD $RECYCLE.BIN 
59.
if %TT% == 01 ping localhost -n 9 >nul 
60.
::		------------------ Robocopy ---------------------------------------------- 
61.
:robo 
62.
robocopy.exe %quelle% %ziel% %par% %log% 
63.
::		------------------ Errorlevel von Robocopy überprüfen -------------------- 
64.
if %errorlevel% == 16 set betreff=FATAL ERROR & Goto mail2 
65.
if %errorlevel% == 15 set betreff=OKCOPY + FAIL + MISMATCHES + XTRA & Goto mail2 
66.
if %errorlevel% == 14 set betreff=FAIL + MISMATCHES + XTRA & Goto mail2 
67.
if %errorlevel% == 13 set betreff=OKCOPY + FAIL + MISMATCHES & Goto mail2 
68.
if %errorlevel% == 12 set betreff=FAIL + MISMATCHES & Goto mail2 
69.
if %errorlevel% == 11 set betreff=OKCOPY + FAIL + XTRA & Goto mail2 
70.
if %errorlevel% == 10 set betreff=FAIL + XTRA & Goto mail2 
71.
if %errorlevel% == 9  set betreff=OKCOPY + FAIL & Goto mail2 
72.
if %errorlevel% == 8  set betreff=FAILED COPIES & Goto mail2 
73.
if %errorlevel% == 7  set betreff=OKCOPY + MISMATCHES + XTRA & Goto mail2 
74.
if %errorlevel% == 6  set betreff=MISMATCHES + XTRA & Goto mail2 
75.
if %errorlevel% == 5  set betreff=OKCOPY + MISMATCHES & Goto mail2 
76.
if %errorlevel% == 4  set betreff=MISMATCHES & Goto mail2 
77.
if %errorlevel% == 3  set betreff=Copy successful ^& EXTRA Files deleted & Goto mail2 
78.
if %errorlevel% == 2  set betreff=EXTRA Files deleted & Goto mail2 
79.
if %errorlevel% == 1  set betreff=Copy successful & Goto logausw 
80.
if %errorlevel% == 0  set betreff=-- Nothing to do -- & Goto logausw 
81.
::		------------------ Bestimmte Zeilen auslesen ----------------------------- 
82.
:logausw 
83.
ping localhost -n 9 >nul 
84.
find /i "Gestartet:" %Logfile% >> temp.txt 
85.
find /i "Quelle :" %Logfile% >> temp.txt 
86.
find /i "Ziel :" %Logfile% >> temp.txt 
87.
find /i "Optionen:" %Logfile% >> temp.txt 
88.
echo. >> temp.txt 
89.
echo ----------------------------------------------------------------------------- >> temp.txt 
90.
find /i "Der Prozess" %Logfile% >> temp.txt 
91.
echo ----------------------------------------------------------------------------- >> temp.txt 
92.
find /i "Insgesamt" %Logfile% >> temp.txt 
93.
find /i "Verzeich.:" %Logfile% >> temp.txt 
94.
find /i "Dateien:" %Logfile% >> temp.txt 
95.
find /i "Bytes:" %Logfile% >> temp.txt 
96.
echo ----------------------------------------------------------------------------- >> temp.txt 
97.
find /i "Zeiten:" %Logfile%  >> temp.txt 
98.
find /i "Beendet:" %Logfile% >> temp.txt 
99.
type temp.txt | find /i /v "%Logfile%" > temp2.txt 
100.
del temp.txt 
101.
ren temp2.txt temp.txt 
102.
echo. >> temp.txt 
103.
echo. >> temp.txt 
104.
ping localhost -n 9 >nul 
105.
::		------------------ Bestimmte Zeilen auslesen Ende ------------------------ 
106.
:mail1 
107.
::		------------------ Mailer1 Zusammenfassung versenden --------------------- 
108.
%pathblat%\blat.exe %body% -to %mailto% -server %mailsrv% -u %mailuser% -pw %mailuserPW% -debug -timestamp -subject "%betreff%" 
109.
goto clean 
110.
::		------------------ Mailer2 für Fehler und Komplettes Logfile-------------- 
111.
:mail2 
112.
ping localhost -n 9 >nul 
113.
find /i "Gestartet:" %Logfile% >> temp.txt 
114.
find /i "Quelle :" %Logfile% >> temp.txt 
115.
find /i "Ziel :" %Logfile% >> temp.txt 
116.
find /i "Optionen:" %Logfile% >> temp.txt 
117.
echo. >> temp.txt 
118.
echo ----------------------------------------------------------------------------- >> temp.txt 
119.
find /i "Der Prozess" %Logfile% >> temp.txt 
120.
echo ----------------------------------------------------------------------------- >> temp.txt 
121.
find /i "Insgesamt" %Logfile% >> temp.txt 
122.
find /i "Verzeich.:" %Logfile% >> temp.txt 
123.
find /i "Dateien:" %Logfile% >> temp.txt 
124.
find /i "Bytes:" %Logfile% >> temp.txt 
125.
echo ----------------------------------------------------------------------------- >> temp.txt 
126.
find /i "Zeiten:" %Logfile%  >> temp.txt 
127.
find /i "Beendet:" %Logfile% >> temp.txt 
128.
type temp.txt | find /i /v "%Logfile%" > temp2.txt 
129.
del temp.txt 
130.
ren temp2.txt temp.txt 
131.
echo. >> temp.txt 
132.
echo. >> temp.txt 
133.
ping localhost -n 9 >nul 
134.
::		------------------ Bestimmte Zeilen auslesen Ende ------------------------ 
135.
::		------------------ Mailer1 Zusammenfassung versenden --------------------- 
136.
%pathblat%\blat.exe %body% -attach %Logfile% -to %mailto% -server %mailsrv% -u %mailuser% -pw %mailuserPW% -debug -timestamp -subject "%betreff%" 
137.
goto clean 
138.
::		------------------ Letzten 5 Versionen behalten, Rest löschen! ----------- 
139.
:clean 
140.
::for /f "skip=5" %%i in ('dir /b /o-D /ad /tc "%backuproot%\%MM%\????-??-??"') do ( rd /s /q "%backuproot%\%MM%\%%i") 
141.
exit
Mitglied: bastla
13.04.2013, aktualisiert um 17:39 Uhr
Hallo nother!

Unabhängig von der von Dir verwendeten Robocopy-Version kann ich leider die eigentliche Frage nicht beantworten - zu Deinem "Anliegen 2" hätte ich aber zumindest einen (völlig ungetesteten) Vorschlag zu bieten:
01.
:: Robocopysicherung Nas01 incl. Mailversand 
02.
:: Zu befüllen sind die Variablen für Robocopy und dessen Logfile 
03.
::    sowie optional den Mailer 
04.
::-------------------------------------------------------------------------------- 
05.
::Achtung! Ganz unten werden nur die letzten 5 Versionen behalten----------------- 
06.
::ist aber zur Sicherheit auskommentiert ----------------------------------------- 
07.
::-------------------------------------------------------------------------------- 
08.
@ECHO OFF & SETLOCAL 
09.
::		------------------ Codepage ändern für Umlaute im Log -------------------- 
10.
chcp 1252 
11.
::		------------------ Variablen leeren --- ist unnötig, da alle unten neu erstellt werden 
12.
:: for %%i in (mydate Quelle Ziel par Logfile befehl mailsrv mailuser mailuserPW mailfrom betreff pathblat mailto body) do set "%%i=" 
13.
::		------------------ eventuell alte vorhandene Dateien löschen ------------- 
14.
if exist temp.txt del temp.txt 
15.
if exist logfile.log del logfile.log 
16.
::		------------------ allgemeine Variablen: Datum zerlegen 1 ---------------- 
17.
for /F "tokens=1-3 delims=/. " %%a in ('date/T') do ( 
18.
    set "TT=%%a" 
19.
    set "MM=%%b" 
20.
    set "YYYY=%%c" 
21.
22.
set "mydate=%YYYY%-%MM%-%TT%" 
23.
::		------------------ Variable Quelle --------------------------------------- 
24.
set "quelle=\\NAS-IP\Backup" 
25.
::		------------------ Variable Zielverzeichnis mit abschließendem \ --------- 
26.
set "backuproot=f:\" 
27.
::		------------------ lege ein Monatsordner an ------------------------------ 
28.
set "ziel=%BackupRoot%%MM%\%mydate%" 
29.
set "par=/S /MT /NP /NDL /V /FP /XJD /TS /FFT /TEE /R:1 /W:1 /XF desktop.ini Thumbs.db /XD $RECYCLE.BIN" 
30.
::		------------------ Logfile für Robocopy ---------------------------------- 
31.
::		------------------ ACHTUNG: Pfad muss vorhanden sein! -------------------- 
32.
set "logfile=%BackupRoot%Logs\%mydate%.log" 
33.
set "log=/LOG:%logfile%" 
34.
::		------------------ Variablen für den Mailer ------------------------------ 
35.
set "mailsrv=hosteurope.de:587" 
36.
set "mailuser=" 
37.
set "mailuserPW=" 
38.
set "mailfrom=robocopy@firma.de" 
39.
set "pathblat=C:\Programme\blat\" 
40.
set "mailto=admin@firma.de" 
41.
set "body=temp.txt" 
42.
::		------------------ Attribut am 01. des Monats zurücksetzen --------------- 
43.
::		------------------ den Parameter /A durch /M ersetzen -------------------- 
44.
::		------------------ Vollständige Sicherung und Attrib /A raus ------------- 
45.
::		------------------ Darauffolgende Tage werden differentiell gesichert ---- 
46.
if %TT%==01 ( 
47.
    attrib +a "%quelle%\*.*" /s /d 
48.
    set "par=/M %par%" 
49.
    ping localhost -n 9 >nul 
50.
) else ( 
51.
    set "par=/A %par%" 
52.
53.
::		------------------ Robocopy ---------------------------------------------- 
54.
robocopy.exe "%quelle%" "%ziel%" %par% %log% 
55.
::		------------------ Errorlevel von Robocopy überprüfen -------------------- 
56.
set "err=%errorlevel%" 
57.
if %err%==16 set "betreff=FATAL ERROR" 
58.
if %err%==15 set "betreff=OKCOPY + FAIL + MISMATCHES + XTRA" 
59.
if %err%==14 set "betreff=FAIL + MISMATCHES + XTRA" 
60.
if %err%==13 set "betreff=OKCOPY + FAIL + MISMATCHES" 
61.
if %err%==12 set "betreff=FAIL + MISMATCHES" 
62.
if %err%==11 set "betreff=OKCOPY + FAIL + XTRA" 
63.
if %err%==10 set "betreff=FAIL + XTRA" 
64.
if %err%==9  set "betreff=OKCOPY + FAIL" 
65.
if %err%==8  set "betreff=FAILED COPIES" 
66.
if %err%==7  set "betreff=OKCOPY + MISMATCHES + XTRA" 
67.
if %err%==6  set "betreff=MISMATCHES + XTRA" 
68.
if %err%==5  set "betreff=OKCOPY + MISMATCHES" 
69.
if %err%==4  set "betreff=MISMATCHES" 
70.
if %err%==3  set "betreff=Copy successful ^& EXTRA Files deleted" 
71.
if %err%==2  set "betreff=EXTRA Files deleted" 
72.
if %err%==1  set "betreff=Copy successful" 
73.
if %err%==0  set "betreff=-- Nothing to do --" 
74.
::		------------------ Bestimmte Zeilen auslesen ----------------------------- 
75.
ping localhost -n 9 >nul 
76.
 >temp.txt find /i "Gestartet:" %Logfile%  
77.
>>temp.txt find /i "Quelle :" %Logfile% 
78.
>>temp.txt find /i "Ziel :" %Logfile% 
79.
>>temp.txt find /i "Optionen:" %Logfile% 
80.
>>temp.txt echo. 
81.
>>temp.txt echo ----------------------------------------------------------------------------- 
82.
>>temp.txt find /i "Der Prozess" %Logfile% 
83.
>>temp.txt echo ----------------------------------------------------------------------------- 
84.
>>temp.txt find /i "Insgesamt" %Logfile% 
85.
>>temp.txt find /i "Verzeich.:" %Logfile% 
86.
>>temp.txt find /i "Dateien:" %Logfile% 
87.
>>temp.txt find /i "Bytes:" %Logfile% 
88.
>>temp.txt echo ----------------------------------------------------------------------------- 
89.
>>temp.txt find /i "Zeiten:" %Logfile% 
90.
>>temp.txt find /i "Beendet:" %Logfile% 
91.
  
92.
>temp2.txt find /i /v "%Logfile%" temp.txt 
93.
move temp2.txt temp.txt 
94.
>>temp.txt echo. 
95.
>>temp.txt echo. 
96.
ping localhost -n 9 >nul 
97.
::		------------------ Bestimmte Zeilen auslesen Ende ------------------------ 
98.
if %err% leq 1 ( 
99.
    REM	------------------ Mailer1 Zusammenfassung versenden --------------------- 
100.
    "%pathblat%\blat.exe" %body% -to %mailto% -server %mailsrv% -u %mailuser% -pw %mailuserPW% -debug -timestamp -subject "%betreff%" 
101.
) else ( 
102.
    REM	------------------ Mailer2 für Fehler und komplettes Logfile ------------- 
103.
    "%pathblat%\blat.exe" %body% -attach %Logfile% -to %mailto% -server %mailsrv% -u %mailuser% -pw %mailuserPW% -debug -timestamp -subject "%betreff%" 
104.
105.
::		------------------ Letzten 5 Versionen behalten, Rest löschen! ----------- 
106.
::for /f "skip=5" %%i in ('dir /b/o-D/ad/tc "%backuproot%%MM%\????-??-??"') do rd /s /q "%backuproot%%MM%\%%i"
Grüße
bastla
Bitte warten ..
Mitglied: rubberman
13.04.2013 um 18:00 Uhr
Hallo zusammen.

Mir geht es ähnlich wie bastla. Habe mir die Optionen mal angesehen. Warum trotzdem leere Verzeichnisse kopiert werden ist nicht ganz zu verstehen.

Die Auswertung des Errorlevelwertes ließe sich etwas verkürzen, indem man bitweise Operationen verwendet.
Zum Testen mal mit exit /b statt robocopy, um beliebige Errorlevelwerte erzeugen zu können.
01.
@echo off &setlocal 
02.
 
03.
REM Diese Zeile erzeugt den Errorlevelwert der hinter /b angegeben ist. 
04.
cmd /c exit /b 0 
05.
 
06.
set /a "return = %errorlevel%" 
07.
 
08.
setlocal EnableDelayedExpansion 
09.
set /a "n = 0" 
10.
for %%i in ("OKCOPY" "EXTRA" "MISMATCHES" "FAILS" "FATAL ERROR") do (set "bit!n!=%%~i" & set /a "n += 1") 
11.
if !return!==0 (set "betreff=   -- Nothing to do --") else ( 
12.
  for /l %%i in (0 1 4) do (set /a "bit=return & 1, return >>= 1" &if !bit!==1 (set "betreff=!betreff! + !bit%%i!" &if %%i gtr 0 set "mail2=goto mail2")) 
13.
14.
endlocal &set "betreff=%betreff:~3%" &%mail2% 
15.
 
16.
:logausw 
17.
REM ... 
18.
 
19.
:mail1 
20.
echo mail1 %betreff% 
21.
pause 
22.
goto :eof 
23.
 
24.
 
25.
:mail2 
26.
echo mail2 %betreff% 
27.
pause
Grüße
rubberman
Bitte warten ..
Mitglied: nother
13.04.2013 um 18:58 Uhr
Danke für eure Beiträge!
Ich werde das heute Nacht mal testen!
Sieht auf jeden Fall schon mal besser aus!
Zu den leeren Verzeichnissen:
Ich nutze Windows 7 x64 Ultimate (also XP027) in Verbindung eines QNAP Nas SS439 pro.
Dieses bietet eigentlich alles was das Herz so begehrt aber leider keine Versionierung von Dateien!
Ich habe auch schon allerhand mit den Parametern von Robocopy experimentiert, aber egal wie ich es anstelle, es kommen
immer leere Verzeichnisse mit dazu...

Anyway, ist wie gesagt nicht "Kriegsentscheidend", aber nicht schön!
Danke für eure Zeit.
Werde Berichten ob alles problemlos funktioniert.

have fun

nother
Bitte warten ..
Mitglied: rubberman
13.04.2013 um 20:28 Uhr
Hallo nother.

Man könnte den Check auch in eine Funktion packen. Das macht es vielleicht einfacher.

01.
@echo off &setlocal 
02.
 
03.
REM Zur Auswertung von Robocopy (Errorlevel 0-16) 
04.
REM Diese Zeile erzeugt den Errorlevelwert der hinter /b angegeben ist (als Ersatz für Robocopy). 
05.
cmd /c exit /b 0 
06.
 
07.
call :robocopycheck %errorlevel% desc 
08.
echo Is Error [0/1]: %errorlevel% 
09.
echo Description   : %desc% 
10.
pause 
11.
goto :eof 
12.
:::::::::::::::::::: 
13.
 
14.
:robocopycheck robocopy_errorlevel [description_variable_name] 
15.
setlocal EnableDelayedExpansion &set /a "return = %~1, err = 0" &set "txt=" 
16.
if !return!==0 (set "txt=NO CHANGE   ") else ( 
17.
  for %%i in ("OKCOPY" "EXTRA" "MISMATCHES" "FAILS" "FATAL ERROR") do (set "bit!err!=%%~i" & set /a "err += 1") 
18.
  if !return! gtr 1 (set "err=1") else set "err=0" 
19.
  for /l %%i in (0 1 4) do (set /a "bit=return & 1, return >>= 1" &if !bit!==1 set "txt=!bit%%i! + !txt!") 
20.
21.
endlocal &if "%~2" neq "" set "%~2=%txt:~0,-3%" &exit /b %err%
Grüße
rubberman
Bitte warten ..
Mitglied: nother
14.04.2013 um 00:20 Uhr
Danke für die Mühe!
Habe eben mal die Version von bastla getestet und läuft prima (ist auch code den ich halbwegs verstehe )

Dann hatte ich mal kurz die XP010 getestet... die versteht ja den ein oder anderen Parameter nicht.
Und da war auch des Rätzels Lösung: /MT Multithread geht nicht mit XP010.

Dann habe ich im Originalscript den Paramater /MT entfernt: siehe da, Robocopy produziert keine leeren Ordner mehr!

Jetzt muss ich nur noch das ganze mal auf das NAS losjagen und die Geschwindigkeit betrachten...
Hat jemand von euch Erfahrungen gemacht, wie sehr sich der Parameter /MT auswirkt?
Daten: ca 30 GB, knapp 5000 Ordner, etwa 40 000 Dateien, Zuwachsrate etwa 0,5 bis 1 GB pro Monat, manchmal weniger...
über eine Gbit Leitung!?

Aber nochmals Danke für die Mühe!

have fun

nother
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Backup
BackUp Exec2015 IMG Verzeichnisse (1)

Frage von gruener.puma zum Thema Backup ...

Backup
gelöst Sicherung auf USB Festplatte mit Acronis Backup und Robocopy (5)

Frage von mike7050 zum Thema Backup ...

Backup
Backup mit robocopy - Erklärung benötigt (1)

Frage von haximurati zum Thema Backup ...

Backup
Robocopy BackUp Inkrementell und Voll (9)

Frage von Akrosh zum Thema Backup ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

DSL, VDSL
DSL-Signal bewerten (14)

Frage von SarekHL zum Thema DSL, VDSL ...