Robocopy Logs bearbeiten mit PowerShell
Hallo Leute,
ich will, dass Powershell alle Robocopy Logs nach meinen Vorstellungen ändert und dann in einer neuen Datei speichert.
Und zwar soll folgende Änderung vorgenommen werden:
Das was bei den Logs zwischen den Bindestricken steht (also die einzelnen Pfade und Dateien) durch 5 Sterne ersetzt, also wie folgt:
Ich habe circa 20 dieser Logs die ich jeden Tag auf Fehler prüfen muss und dann wie oben beschrieben bearbeiten und anschließend drucken muss.
Powershell sollte dann alle Textdateien zu einer zusammenfügen: z.B Ich habe folgende Unterordner im Ordner Daten: Produkte, Gebäude, etc.. und diese Ordner enthalten 3-5 Logs welche ich bearbeiten und zusammenfügen muss, also nach Unterordners sortiert.
VIelleicht hat jemand eine Idee! Ich bin nicht sehr bewandert in Powershell, aber taste mich langsam heran.
ich will, dass Powershell alle Robocopy Logs nach meinen Vorstellungen ändert und dann in einer neuen Datei speichert.
Und zwar soll folgende Änderung vorgenommen werden:
Das was bei den Logs zwischen den Bindestricken steht (also die einzelnen Pfade und Dateien) durch 5 Sterne ersetzt, also wie folgt:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
-------------------------------------------------------------------------------
ROBOCOPY :: Robustes Dateikopieren fr Windows
-------------------------------------------------------------------------------
Gestartet: Tue Dec 08 17:08:22 2015
Quelle : C:\Daten\
Ziel : \\Backup\D$\Daten\
Dateien : *.*
Optionen: *.* /TEE /S /E /COPYALL /DCOPY:T /PURGE /NP /MT:4 /R:0 /W:30
------------------------------------------------------------------------------
*****
------------------------------------------------------------------------------
Insgesamt KopiertšbersprungenKeine šbereinstimmung FEHLER Extras
Verzeich.: 5523 17 5506 0 0 1
Dateien: 62505 118 62387 0 0 40
Bytes: 17.701 g 117.31 m 17.586 g 0 0 21.77 m
Zeiten: 0:03:29 0:00:14 0:00:00 0:03:08
Geschwindigkeit: 15016868 Bytes/Sek.
Geschwindigkeit: 859.272 Megabytes/Min.
Beendet: Tue Dec 08 17:13:37 2015
Powershell sollte dann alle Textdateien zu einer zusammenfügen: z.B Ich habe folgende Unterordner im Ordner Daten: Produkte, Gebäude, etc.. und diese Ordner enthalten 3-5 Logs welche ich bearbeiten und zusammenfügen muss, also nach Unterordners sortiert.
VIelleicht hat jemand eine Idee! Ich bin nicht sehr bewandert in Powershell, aber taste mich langsam heran.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 290947
Url: https://administrator.de/forum/robocopy-logs-bearbeiten-mit-powershell-290947.html
Ausgedruckt am: 13.04.2025 um 18:04 Uhr
7 Kommentare
Neuester Kommentar

Moin,
schon mal die Logging Parameter von Robocopy angeschaut ?
/nfl /ndl /nc /ns /np
lösen dein Problem schon ohne PS
Wenn PS sein muss
Gruß jodel32
schon mal die Logging Parameter von Robocopy angeschaut ?
/nfl /ndl /nc /ns /np
lösen dein Problem schon ohne PS
Wenn PS sein muss
[regex]::Replace((gc 'c:\temp\*.log' | out-string),'(?ism)^-{1,}(.*?)^-{1,}',"-"*80) | set-content 'C:\temp\merged.txt'

Kannst du dir selber wieder mit einbauen 
2. Die Kopfzeile von Robocopy fehlt
Wozu brauchst du die ??3. Die Abstände der einzelnen Textdateien in dem zusammengeführten Element sind zu klein, da sollten circa 5 Leerzeilen dazwischen sein.
Einfach den Replace-String anpassen...
Gegen Cash mach ich es dir gerne passend, das sind ja persönliche Anpassungen, ist ja hier kein Wunschkonzert ...
, kurze PM und die Lösung kommt pronto.

Weil bald Weihnachten ist, hier ausnahmsweise mal die Lösung... 
Gruß und viel Erfolg beim Powershell lernen.
1
2
3
4
2
3
4
gci 'c:\temp\*.log' | %{
[regex]::Replace((gc $_.Fullname | out-string),'(?sim)(^-{78}[\r\n]*$)(.*?)(^-{78})','$1' + "`t*****`r`n" + '$3')
"`r`n"*5
} | set-content 'C:\merged.log'