robocopy Idee für .log Datei öffnen-Befehl und .log Datei erstellen mit Fehler Protokol im Temp Ordner
Hallo
Ich möchte den Ordner Favoriten 1:1 kopieren (Vergleichen der Ordner + Dateien und löschen überschüssige Dateien).
Es soll nach dem kopieren eine log Datei [U]öffnen[/U] (die im TEMP Ordner erstellt wurde) mit einer Protokolierung aller Fehler (welche Dateien gelöscht wurden und welche kopiert und nicht kopiert wurden).
Das Eingabefenster sollte aber noch offen sein und auch dort sollte quasi die Ordner die gelöscht, kopiert und nicht kopiert wurden anzeigen.
Was muss ich an meinem Skript anpassen?
*
@echo OFF
CLS
color 0A
ECHO Die Datensicherung der Favoriten Datei wird gestartet ..
ECHO.
@set logf=C:\WINDOWS\Temp\Backup.txt
:start
echo * öffne Logfile *
@echo S T A R T > %logf%
@echo. >> %logf%
robocopy.exe "D:\INSTALLATION PROGRAMME\Backup\Favoriten" "G:\INSTALLATION PROGRAMME\Backup\Favoriten" *.* /s /v /mir /x /r:1 /w:1 /TEE /X /V
if errorlevel 16 echo *FATAL ERROR* & goto end
if errorlevel 15 echo FAIL MISM XTRA COPY & goto end
if errorlevel 14 echo FAIL MISM XTRA & goto end
if errorlevel 13 echo FAIL MISM COPY & goto end
if errorlevel 12 echo FAIL MISM & goto end
if errorlevel 11 echo FAIL XTRA COPY & goto end
if errorlevel 10 echo FAIL XTRA & goto end
if errorlevel 9 echo FAIL COPY & goto end
if errorlevel 8 echo FAIL & goto end
if errorlevel 7 echo MISM XTRA COPY & goto end
if errorlevel 6 echo MISM XTRA & goto end
if errorlevel 5 echo MISM COPY & goto end
if errorlevel 4 echo MISM & goto end
if errorlevel 3 echo XTRA COPY & goto end
if errorlevel 2 echo XTRA & goto end
if errorlevel 1 echo COPY & goto end
if errorlevel 0 echo --no change-- & goto end
if not ERRORLEVEL 1 goto log
if not ERRORLEVEL 2 goto log
if not ERRORLEVEL 3 goto log
if not ERRORLEVEL 4 goto log
if not ERRORLEVEL 5 goto log
if not ERRORLEVEL 6 goto log
if not ERRORLEVEL 7 goto log
if not ERRORLEVEL 8 goto log
if not ERRORLEVEL 9 goto log
if not ERRORLEVEL 10 goto log
if not ERRORLEVEL 11 goto log
if not ERRORLEVEL 12 goto log
if not ERRORLEVEL 13 goto log
if not ERRORLEVEL 14 goto log
if not ERRORLEVEL 15 goto log
if not ERRORLEVEL 16 goto log
if not ERRORLEVEL 1 goto send
if not ERRORLEVEL 2 goto send
if not ERRORLEVEL 3 goto send
if not ERRORLEVEL 4 goto send
if not ERRORLEVEL 5 goto send
if not ERRORLEVEL 6 goto send
if not ERRORLEVEL 7 goto send
if not ERRORLEVEL 8 goto send
if not ERRORLEVEL 9 goto send
if not ERRORLEVEL 10 goto send
if not ERRORLEVEL 11 goto send
if not ERRORLEVEL 12 goto send
if not ERRORLEVEL 13 goto send
if not ERRORLEVEL 14 goto send
if not ERRORLEVEL 15 goto send
if not ERRORLEVEL 16 goto send
:end
echo.
echo Errorlevel: %errorlevel% >> %logf%
@echo. >> %logf%
pause
*
Danke im voraus für die Hilfe
Elena
Ich möchte den Ordner Favoriten 1:1 kopieren (Vergleichen der Ordner + Dateien und löschen überschüssige Dateien).
Es soll nach dem kopieren eine log Datei [U]öffnen[/U] (die im TEMP Ordner erstellt wurde) mit einer Protokolierung aller Fehler (welche Dateien gelöscht wurden und welche kopiert und nicht kopiert wurden).
Das Eingabefenster sollte aber noch offen sein und auch dort sollte quasi die Ordner die gelöscht, kopiert und nicht kopiert wurden anzeigen.
Was muss ich an meinem Skript anpassen?
*
@echo OFF
CLS
color 0A
ECHO Die Datensicherung der Favoriten Datei wird gestartet ..
ECHO.
@set logf=C:\WINDOWS\Temp\Backup.txt
:start
echo * öffne Logfile *
@echo S T A R T > %logf%
@echo. >> %logf%
robocopy.exe "D:\INSTALLATION PROGRAMME\Backup\Favoriten" "G:\INSTALLATION PROGRAMME\Backup\Favoriten" *.* /s /v /mir /x /r:1 /w:1 /TEE /X /V
if errorlevel 16 echo *FATAL ERROR* & goto end
if errorlevel 15 echo FAIL MISM XTRA COPY & goto end
if errorlevel 14 echo FAIL MISM XTRA & goto end
if errorlevel 13 echo FAIL MISM COPY & goto end
if errorlevel 12 echo FAIL MISM & goto end
if errorlevel 11 echo FAIL XTRA COPY & goto end
if errorlevel 10 echo FAIL XTRA & goto end
if errorlevel 9 echo FAIL COPY & goto end
if errorlevel 8 echo FAIL & goto end
if errorlevel 7 echo MISM XTRA COPY & goto end
if errorlevel 6 echo MISM XTRA & goto end
if errorlevel 5 echo MISM COPY & goto end
if errorlevel 4 echo MISM & goto end
if errorlevel 3 echo XTRA COPY & goto end
if errorlevel 2 echo XTRA & goto end
if errorlevel 1 echo COPY & goto end
if errorlevel 0 echo --no change-- & goto end
if not ERRORLEVEL 1 goto log
if not ERRORLEVEL 2 goto log
if not ERRORLEVEL 3 goto log
if not ERRORLEVEL 4 goto log
if not ERRORLEVEL 5 goto log
if not ERRORLEVEL 6 goto log
if not ERRORLEVEL 7 goto log
if not ERRORLEVEL 8 goto log
if not ERRORLEVEL 9 goto log
if not ERRORLEVEL 10 goto log
if not ERRORLEVEL 11 goto log
if not ERRORLEVEL 12 goto log
if not ERRORLEVEL 13 goto log
if not ERRORLEVEL 14 goto log
if not ERRORLEVEL 15 goto log
if not ERRORLEVEL 16 goto log
if not ERRORLEVEL 1 goto send
if not ERRORLEVEL 2 goto send
if not ERRORLEVEL 3 goto send
if not ERRORLEVEL 4 goto send
if not ERRORLEVEL 5 goto send
if not ERRORLEVEL 6 goto send
if not ERRORLEVEL 7 goto send
if not ERRORLEVEL 8 goto send
if not ERRORLEVEL 9 goto send
if not ERRORLEVEL 10 goto send
if not ERRORLEVEL 11 goto send
if not ERRORLEVEL 12 goto send
if not ERRORLEVEL 13 goto send
if not ERRORLEVEL 14 goto send
if not ERRORLEVEL 15 goto send
if not ERRORLEVEL 16 goto send
:end
echo.
echo Errorlevel: %errorlevel% >> %logf%
@echo. >> %logf%
pause
*
Danke im voraus für die Hilfe
Elena
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 30148
Url: https://administrator.de/contentid/30148
Ausgedruckt am: 20.11.2024 um 15:11 Uhr
3 Kommentare
Neuester Kommentar
Hm, Lauder,
nicht dass ich es ausprobiert hätte, aber aus dem Bauch heraus:
(Dein Bätchlett bis zur Zeile vor "Robocoby .." as is)
Robocopy [Quelle] [Ziel] [streiche:"*.*"] [bisherige Optionen] /Log+:%log%
... die abwärts zählenden "if errorlevel 16" ... bis ..."if errorlevel 0 ..." würde ich eindeutiger formulieren:
if errorlevel 16 (echo *FATAL ERROR*) && goto end
..
..Alles NACH "if errorlevel 0" bis ":end" wird NIE erreicht -- in die Tonne damit .
Da weiß ich nicht genau, was Du da vorhast... jedenfalls hast Du die ECHO-Meldungen NUR auf dem Bildschirm, nicht in der Logdatei.
Du könntest das Ganze etwas nachvollziehbarer gestalten, wenn Du am Anfang die Errorlevel-Texte in Variablen packst:
Set "Errorlevel_16= FATAL ERROR"
...
Set "Errorlevel_5= Mismatch beim COPY"
...
Set "Errorlevel_0=Alles prima!"
und später einfach statt ALT dann NEU schreibst:
ALT:
echo Errorlevel: %errorlevel% >> %logf%
NEU:
Set "myErrorlevel=Errorlevel_%errorlevel%"
echo Errorlevel: %myerrorlevel% >> %logf%
Den Rattenschwanz oben kannst Du dann genauso handeln:
(unmittelbar nach Robocopy)
Set "myErrorlevel=Errorlevel_%errorlevel%"
(echo %myerrorlevel% ) && goto :end
..statt dieser 16 If errorlevel-Zeilen.
Hope That Helps
Biber
[Edit] Das nicht jugendfreie und automatisch entschärfte Wort oben ("Rattenschwanz") heißt Rattenschwantz mit "z" statt "tz".
[/Edit]
nicht dass ich es ausprobiert hätte, aber aus dem Bauch heraus:
(Dein Bätchlett bis zur Zeile vor "Robocoby .." as is)
Robocopy [Quelle] [Ziel] [streiche:"*.*"] [bisherige Optionen] /Log+:%log%
... die abwärts zählenden "if errorlevel 16" ... bis ..."if errorlevel 0 ..." würde ich eindeutiger formulieren:
if errorlevel 16 (echo *FATAL ERROR*) && goto end
..
..Alles NACH "if errorlevel 0" bis ":end" wird NIE erreicht -- in die Tonne damit .
Da weiß ich nicht genau, was Du da vorhast... jedenfalls hast Du die ECHO-Meldungen NUR auf dem Bildschirm, nicht in der Logdatei.
Du könntest das Ganze etwas nachvollziehbarer gestalten, wenn Du am Anfang die Errorlevel-Texte in Variablen packst:
Set "Errorlevel_16= FATAL ERROR"
...
Set "Errorlevel_5= Mismatch beim COPY"
...
Set "Errorlevel_0=Alles prima!"
und später einfach statt ALT dann NEU schreibst:
ALT:
echo Errorlevel: %errorlevel% >> %logf%
NEU:
Set "myErrorlevel=Errorlevel_%errorlevel%"
echo Errorlevel: %myerrorlevel% >> %logf%
Den Rattenschwanz oben kannst Du dann genauso handeln:
(unmittelbar nach Robocopy)
Set "myErrorlevel=Errorlevel_%errorlevel%"
(echo %myerrorlevel% ) && goto :end
..statt dieser 16 If errorlevel-Zeilen.
Hope That Helps
Biber
[Edit] Das nicht jugendfreie und automatisch entschärfte Wort oben ("Rattenschwanz") heißt Rattenschwantz mit "z" statt "tz".
[/Edit]