Jump to content

Robocopy Log per Powershell auslesen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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

Link zu diesem Kommentar

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 von cj_berlin
Link zu diesem Kommentar

@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 von Kuddel071089
Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...