LOG Datei von Robocopy XP027 auswerten
Ich nutze seit Jahren Robocopy XP010 für automatisierte Backups mittels einer Batchdatei und lasse alle Bildschirmausgaben zusätzlich auch als Log-Datei abspeichern.
Aus Performancegründen bin ich gerade dabei das ganze auf Robocopy XP027 umzustellen, jedoch ist die Log-Datei die das neue Robocopy erstellt ein Katastrophe. Hier hat jetzt nicht mehr jedes kopierte Objekt eine Zeile sondern das ganze Log ist ein durchgehender Fließtext ohne Zeilenumbrüche.
Gibt es für diese Art von Log-Datei einen speziellen "Viewer" oder wie kann man den Text sinnvoll aufbereiten?
Wenn ich mich so durch die einschlägigen Foren suche, habe ich fast das Gefühl ich bin der einzige Mensch der damit ein Problem hat...
Aus Performancegründen bin ich gerade dabei das ganze auf Robocopy XP027 umzustellen, jedoch ist die Log-Datei die das neue Robocopy erstellt ein Katastrophe. Hier hat jetzt nicht mehr jedes kopierte Objekt eine Zeile sondern das ganze Log ist ein durchgehender Fließtext ohne Zeilenumbrüche.
Gibt es für diese Art von Log-Datei einen speziellen "Viewer" oder wie kann man den Text sinnvoll aufbereiten?
Wenn ich mich so durch die einschlägigen Foren suche, habe ich fast das Gefühl ich bin der einzige Mensch der damit ein Problem hat...
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 188887
Url: https://administrator.de/contentid/188887
Ausgedruckt am: 22.11.2024 um 10:11 Uhr
8 Kommentare
Neuester Kommentar
moin,
also für die Batches von hier nutze ich den Batch um diese Zeilen aufzudröseln:
Gruß Phil
also für die Batches von hier nutze ich den Batch um diese Zeilen aufzudröseln:
@echo off
if "%~1" equ "" echo Syntaxfehler. 1>&2 &exit /b 1
if not exist "%~1" echo Datei nicht gefunden! 1>&2 & exit /b 2
if "%~1" equ "/?" echo Schreibt Dateien mit echten Zeilenumbruechen. &echo %~n0 Quelldatei &exit /b 0
>"%temp%\%~nx1" findstr /n "^" "%~1"
3>"%~dpn1-CRLF%~x1" (for /f "usebackq delims=" %%i in ("%temp%\%~nx1") do (set "Line=%%i"
setlocal enabledelayedexpansion
>&3 echo(!Line:*:=!
endlocal
))
del "%temp%\%~nx1"
Gruß Phil
Halli hallo hallöle,
@phil: ich finde das Shellskript richtig gut. Respekt.
Warum beim OP das LOG als durchgehender Fließtext ohne Zeilenumbrüche erstellt wird, hat er uns noch nicht verraten.
Ich hatte glaube ich den Fall, nur bei Einsatz der Parameter
Gruss Penny.
@phil: ich finde das Shellskript richtig gut. Respekt.
Warum beim OP das LOG als durchgehender Fließtext ohne Zeilenumbrüche erstellt wird, hat er uns noch nicht verraten.
Ich hatte glaube ich den Fall, nur bei Einsatz der Parameter
/UNILOG:datei
/UNILOG+:datei</code
/UNILOG+:datei</code
Gruss Penny.
Moin Vorlon,
warum nutzt Du dann nicht das Robocopy direkt aus dem Stammverzeichnis, wo es ist und sein soll?
Statt rumzufrickeln setze ggf. den Pfad und rufe Robocopy auf.
Die Angaben <quelle> >ziel> <parameter> sind sinngemäß anzupassen.
Gruss Penny.
warum nutzt Du dann nicht das Robocopy direkt aus dem Stammverzeichnis, wo es ist und sein soll?
Statt rumzufrickeln setze ggf. den Pfad und rufe Robocopy auf.
...
pushd C:\Windows\System32
Robocopy <quelle> >ziel> <parameter>
...
Die Angaben <quelle> >ziel> <parameter> sind sinngemäß anzupassen.
Gruss Penny.
moin,
der Befehl pushD ist aber dafür gedacht um in bestimmten Verzeichnissen zu arbeiten.
Für die Pfade der ausführbaren Programme ist die Variable Path zuständig.
Genauso ist die Variable Pathext für die Programmarten zuständig, welche keine Angabe einer Endung erfordern.
Willst Du Vorangig eine BetriebsytemFremde Ausführbare Datei nutzen, dann muss nur der Pfad der Externen Anwendung zuerst in der Variable Path aufgeführt werden.
Gruß Phil
der Befehl pushD ist aber dafür gedacht um in bestimmten Verzeichnissen zu arbeiten.
rem zB. hole die Dateien in dieses Verzeichnis
pushD D:\Test
copy D:\Musik\*.mp3
popD
Für die Pfade der ausführbaren Programme ist die Variable Path zuständig.
Genauso ist die Variable Pathext für die Programmarten zuständig, welche keine Angabe einer Endung erfordern.
rem zB. Angabe einer Fremden CMD-Anwendung
rem nur den Pfad zur wget.exe angeben
set "wgetPath=D:\wsusoffline\bin"
rem wget in Path eintragen
(echo %path:;=;&echo(%;)|find /i "find /i "%wgetpath%;" >nul || set "path=%path%;%wgetpath%"
rem prüfe ob wget gefunden
(wget) 2>&1 |findstr /n "Befehl nicht" && >&2 (echo(&echo wget.exe nicht gefunden. Bitte Pfad angeben!& exit /b 1)
rem hier kanns losgehen
Willst Du Vorangig eine BetriebsytemFremde Ausführbare Datei nutzen, dann muss nur der Pfad der Externen Anwendung zuerst in der Variable Path aufgeführt werden.
rem zB. einer externen Anwendung vorangig die Ausführung geben
set "path=D:\extCMDs\;%path%"
rem zB. wird nun erst die Choice.exe aus dem Verzeichnis "D:\extCMDs\" ausgeführt.
choice
Gruß Phil