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:
-------------------------------------------------------------------------------
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.
Please also mark the comments that contributed to the solution of the article
Content-Key: 290947
Url: https://administrator.de/contentid/290947
Printed on: April 19, 2024 at 16:04 o'clock
7 Comments
Latest comment
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.
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'