Kuddel071089 9 Geschrieben 27. Oktober 2022 Melden Teilen Geschrieben 27. Oktober 2022 Hallo zusammen, bei mir läuft ein tägliches Backup per Powershell und Robocopy. Kann man das Robocopy Log irgendwie per Powershell auslesen und die einzelnen Werte in Variablen schreiben, um eine Mail zu versenden? Mich interessieren da speziell die Werte "Kopiert: Datein; Kopiert: Bytes" sowie "Insgesamt: Zeit". ------------------------------------------------------------------------------ Insgesamt KopiertšbersprungenKeine šbereinstimmung FEHLER Extras Verzeich.: 22156 3 22153 0 0 2 Dateien: 272877 195 272682 0 0 179 Bytes: 1.342 t 189.09 m 1.342 t 0 0 160.48 m Zeiten: 1:23:52 0:03:57 0:00:00 1:19:55 Geschwindigkeit: 836030 Bytes/Sek. Geschwindigkeit: 47.838 Megabytes/Min. Beendet: Donnerstag, 27. Oktober 2022 05:32:46 Vielen Dank schon einmal Zitieren Link zu diesem Kommentar
mwiederkehr 382 Geschrieben 27. Oktober 2022 Melden Teilen Geschrieben 27. Oktober 2022 Dafür gibt es fertige Scripts, zum Beispiel das hier: https://sketchingdev.co.uk/blog/powershell-extract-the-summary-table-from-robocopys-log-file.html Zitieren Link zu diesem Kommentar
Kuddel071089 9 Geschrieben 27. Oktober 2022 Autor Melden Teilen Geschrieben 27. Oktober 2022 Dann muss ich wohl erstmal mein Log auf Englisch umbiegen. Auf Deutsch ist da ja irgendwie nicht so geil Zitieren Link zu diesem Kommentar
cj_berlin 1.329 Geschrieben 27. Oktober 2022 Melden Teilen Geschrieben 27. Oktober 2022 (bearbeitet) Der Kollege macht es viel zu komplex, um alle Eventualitätan abzufangen, und baut dafür eine Abhängigkeit von der Sprache ein Hier mal ein einfacherer Ansatz - vorerst ohne Zeiten, aber das geht genauso gut: $result = Invoke-Expression "robocopy /mir <source> <target>" if ($result[-13] -match "\-+") { $folders = $result[-10] -split "\s+" $files = $result[-9] -split "\s+" $bytes = $result[-8] -split "\s{2,}" | Foreach-Object { if ($_ -match "[a-zA-Z]") { "$($_ -replace "\s")B" } else { $_ }} } Die Dezimalzahlen werden nämlich auch in einer deutschen Shell im Computer-Format ausgegeben, zumindest bei mir ist es so. bearbeitet 27. Oktober 2022 von cj_berlin Zitieren Link zu diesem Kommentar
Kuddel071089 9 Geschrieben 27. Oktober 2022 Autor Melden Teilen Geschrieben 27. Oktober 2022 (bearbeitet) @mwiederkehr Das Skript funktioniert auch mit dem deutschen Log: Type Total Copied Skipped Mismatch Failed Extras ---- ----- ------ ------- -------- ------ ------ Bytes 1.342 t 189.09 m 1.342 t 0 0 160.48 m Dateien 272877 195 272682 0 0 179 Verzeichn. 22156 3 22153 0 0 2 bzw: Type Ingsesamt Kopiert Übersprungen Keine Übereinstimmung FEHLER Extras ---- --------- ------- ------------ --------------------- ------ ------ Bytes 1.342 t 189.09 m 1.342 t 0 0 160.48 m Dateien 272877 195 272682 0 0 179 Verzeichn. 22156 3 22153 0 0 2 Wie genau frage ich jetzt aber einzelne Werte ab ? Wie komme ich jetzt z.B. an die 189,09 MB kopierte Daten ran? An dieser Stelle komme ich nicht weiter: $data = Get-Content "K:\Backup_Log.txt" -Raw | Select-RoboSummary | Sort-Object Type | Format-Table ####### # EDIT: # ####### Hab es jetzt hinbekommen, den Wert für die kopierten Daten herauszubekommen: $data = Get-Content "K:\Backup_Log.txt" -Raw | RoboSummary | Sort-Object Type foreach($entry in $data) { $typ = $($entry.Type) if($typ -eq "Bytes") {$kopierte_datenmenge = $entry.Kopiert} if($typ -eq "Dateien") {$kopierte_datein = $entry.Kopiert} if($typ -eq "Verzeichn.") {$kopierte_verzeichnisse = $entry.Kopiert} } if($kopierte_datenmenge -like "* m") {$kopierte_datenmenge = $kopierte_datenmenge.Replace(" m"," MB")} if($kopierte_datenmenge -like "* g") {$kopierte_datenmenge = $kopierte_datenmenge.Replace(" g"," GB")} "Kopierte Datein: $kopierte_datein" "Kopierte Datenmenge: $kopierte_datenmenge" "Kopierte Verzeichnisse: $kopierte_verzeichnisse" Ausgabe: Kopierte Datein: 195 Kopierte Datenmenge: 189.09 MB Kopierte Verzeichnisse: 3 Ist in meinen Augen zwar Quick & Dirty, aber funktioniert. Wenn jemand eine besser Lösung hat, immer her Damit bearbeitet 27. Oktober 2022 von Kuddel071089 Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.