Compare commits

..

No commits in common. "master" and "v1.2" have entirely different histories.
master ... v1.2

2 changed files with 38 additions and 51 deletions

View File

@ -1,9 +1,3 @@
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![Release](https://img.shields.io/badge/Release-v1.2-brightgreen)](https://code.obermui.de/6543/LogWert/releases)
[![PGP Sig](https://img.shields.io/keybase/pgp/6543)](https://mh.obermui.de/publickey.gpg)

# LogWert # LogWert


Summarizes the RoboCopy Log's Fasst die RoboCopy Log's zusammen

exec: `./logwert.ps1 [path-log1] [path-log2] [path-log3] ... `

81
logwert.ps1 Executable file → Normal file
View File

@ -1,16 +1,17 @@
#!/usr/bin/pwsh #




############################################################## ##############################################################
## ## ## ##
## logwert.ps1 version. 1.2 ## ## logwert.ps1 version. 1.2 ##
## ## ## ##
## This is a smal help script ## ## Dies ist ein Hilfsscript fuer _shares_spiegeln.bat ##
## It evaluates robocopy logs and summarizes them ## ## und der Nachfolger des CMD-Scriptes "logwert.cmd", ##
## Es wertet die Robologfile aus und fast diese zusammen. ##
## ## ## ##
## @parameter: [path-log1] [path-log2] [path-log3] ... ## ## @parameter: [Pfad-Log1] [Pfad-Log2] [Pfad-Log3] ... ##
## ## ## ##
## @author: 6543@obermui.de ## ## @author: Martin.Huber@stbaro.bayern.de ##
## ## ## ##
############################################################## ##############################################################


@ -34,16 +35,16 @@


################################### Functionen ########################################################## ################################### Functionen ##########################################################


function Log_Start ([String]$sLogpath){ function Log_Start ([String]$sLogPfad){
If(Test-Path $sLogpath) { #test if file exists If(Test-Path $sLogPfad) { #Testen Ob Datei Existiert
$tmp = "" $tmp = ""
$tmp = Get-Content $sLogpath #copy file into list $tmp = Get-Content $sLogPfad #Inhalt in Array
$tmp | ForEach-Object { Log_Main $_ } #process each line $tmp | ForEach-Object { Log_Main $_ } #Jede Zeile des 1D Arrays einzeln Bearbeiten
} }
} # start processing } #Starte Verarbeitung


function Log_Main ([String]$sLine){ function Log_Main ([String]$sLine){
# separate Set character #Trenn Zeichen Setzen
$sLine = $sLine.replace("`"", "#") $sLine = $sLine.replace("`"", "#")
$sLine = $sLine.replace(",", "#") $sLine = $sLine.replace(",", "#")
$sLine = $sLine.replace("Insgesamt:", "") $sLine = $sLine.replace("Insgesamt:", "")
@ -51,32 +52,32 @@ $sLine = $sLine.replace("Insgesamt:", "")
if($sLine -match "[0-z]") { if($sLine -match "[0-z]") {




### rule out anomalies ###Anomalien ausschließen


while(" ".Equals($sLine.Substring(0,1))) {$sLine = $sLine.Substring(1, $sLine.Length - 1)} while(" ".Equals($sLine.Substring(0,1))) {$sLine = $sLine.Substring(1, $sLine.Length - 1)}
#Remove when String Begins with Lehrzeichen #Wenn String Mit Lehrzeichen beginnt entfernen
while("#".Equals($sLine.Substring(0,1))) {$sLine = $sLine.Substring(1, $sLine.Length - 1)} while("#".Equals($sLine.Substring(0,1))) {$sLine = $sLine.Substring(1, $sLine.Length - 1)}
#If string begins with delimiter remove #Wenn String Mit Trenzeichen beginnt entfernen
while(" ".Equals($sLine.Substring($sLine.Length - 1,1))) {$sLine = $sLine.Substring(0, $sLine.Length - 1)} while(" ".Equals($sLine.Substring($sLine.Length - 1,1))) {$sLine = $sLine.Substring(0, $sLine.Length - 1)}
#If String Ends with Lehrzeichen Remove String #Wenn String Mit Lehrzeichen endet entfernen
while("#".Equals($sLine.Substring($sLine.Length - 1,1))) {$sLine = $sLine.Substring(0, $sLine.Length - 1)} while("#".Equals($sLine.Substring($sLine.Length - 1,1))) {$sLine = $sLine.Substring(0, $sLine.Length - 1)}
#Remove if string ends with delimiters #Wenn String Mit Trenzeichen endet entfernen
while($sLine.IndexOf("##") -gt -1 ) {$sLine = $sLine.Replace("##", "#")} while($sLine.IndexOf("##") -gt -1 ) {$sLine = $sLine.Replace("##", "#")}
#Remove several following delimiters in a row #Mehrere hintereinander folgende Trenzeichen entfernen
while($sLine.IndexOf(" ") -gt -1 ) {$sLine = $sLine.Replace(" ", " ")} while($sLine.IndexOf(" ") -gt -1 ) {$sLine = $sLine.Replace(" ", " ")}
#Remove several following characters in a row #Mehrere hintereinander folgende Lehrzeichen entfernen
$sLine.Split("#") | ForEach-Object { WichCase $_ } $sLine.Split("#") | ForEach-Object { WichCase $_ }
} }
} #Line by line evaluation } #Zeilenweise auswertung


function WichCase ([String]$sToken) { function WichCase ([String]$sToken) {


if($sToken -match "[0-z]") { if($sToken -match "[0-z]") {


while(" ".Equals($sToken.Substring(0,1))) {$sToken = $sToken.Substring(1, $sToken.Length - 1)} while(" ".Equals($sToken.Substring(0,1))) {$sToken = $sToken.Substring(1, $sToken.Length - 1)}
#remove blank before rating #Lehrzeichen vor werten entfernen
while(" ".Equals($sToken.Substring($sToken.Length - 1,1))) {$sToken = $sToken.Substring(0, $sToken.Length - 1)} while(" ".Equals($sToken.Substring($sToken.Length - 1,1))) {$sToken = $sToken.Substring(0, $sToken.Length - 1)}
#remove blank avter rating #Lehrzeichen nach werten entfernen


$aToken = $sToken.Split(" ") $aToken = $sToken.Split(" ")


@ -97,14 +98,14 @@ if($sToken -match "[0-z]") {
[Double]$Global:zLog_Copy_Size += (Calc_Byte_Sice $aToken[3] $aToken[4] b) [Double]$Global:zLog_Copy_Size += (Calc_Byte_Sice $aToken[3] $aToken[4] b)
[Double]$Global:zLog_Copy_real_Size += (Calc_Byte_Sice $aToken[0] $aToken[1] b) [Double]$Global:zLog_Copy_real_Size += (Calc_Byte_Sice $aToken[0] $aToken[1] b)
} }
} #Transfer of the line; evaluation; storage in global variables } #Übergabe der Zeile; Auswertung; Speicherung in Globale Variablen


function Calc_Byte_Sice ([Double]$Wert, [String]$EinheitEingabe, [String]$EinheitAusgabe ) { function Calc_Byte_Sice ([Double]$Wert, [String]$EinheitEingabe, [String]$EinheitAusgabe ) {


#Calc_Byte_Sice: [value] [unit outpute] [unit input] #Calc_Byte_Sice: [Wert] [Einheit-Ausgabe] [Einheit-Eingabe]
# If you enter something other than KB,MB,GB,TB for unit, it is calculated with bytes. # Wenn bei Einheit etwas anderes als KB,MB,GB,TB eingebeben Wird, Wird mit Bytes gerechnet


#fertieren the different size specifications (conversion unit= 1024) #fertieren der unterschiedlichen Groeßenangaben (umrechnungseinheit= 1024)
# b (=Bytes), k (=Kilobytes), m (=Megabytes), g (=Gigabytes) und t (=Terabytes) # b (=Bytes), k (=Kilobytes), m (=Megabytes), g (=Gigabytes) und t (=Terabytes)


If("".Equals("$Wert") -and "0".Equals("$Wert")) {return 0} else { If("".Equals("$Wert") -and "0".Equals("$Wert")) {return 0} else {
@ -119,7 +120,7 @@ function Calc_Byte_Sice ([Double]$Wert, [String]$EinheitEingabe, [String]$Einhei
$EinheitAusgabe = ($EinheitAusgabe.substring(0,1)).replace("G","g") $EinheitAusgabe = ($EinheitAusgabe.substring(0,1)).replace("G","g")
$EinheitAusgabe = ($EinheitAusgabe.substring(0,1)).replace("T","t") $EinheitAusgabe = ($EinheitAusgabe.substring(0,1)).replace("T","t")


# Catching size information that does not exist/that are not handled # Abfangen von Größenangaben die es nicht giebt/die nicht behandelt werden
If ( -not ("b".Equals("$EinheitAusgabe") -or "k".Equals("$EinheitAusgabe") -or "m".Equals("$EinheitAusgabe") -or "g".Equals("$EinheitAusgabe") -or "t".Equals("$EinheitAusgabe"))) {$EinheitAusgabe = "else"} If ( -not ("b".Equals("$EinheitAusgabe") -or "k".Equals("$EinheitAusgabe") -or "m".Equals("$EinheitAusgabe") -or "g".Equals("$EinheitAusgabe") -or "t".Equals("$EinheitAusgabe"))) {$EinheitAusgabe = "else"}
If ( -not ("b".Equals("$EinheitEingabe") -or "k".Equals("$EinheitEingabe") -or "m".Equals("$EinheitEingabe") -or "g".Equals("$EinheitEingabe") -or "t".Equals("$EinheitEingabe"))) {$EinheitEingabe = "else"} If ( -not ("b".Equals("$EinheitEingabe") -or "k".Equals("$EinheitEingabe") -or "m".Equals("$EinheitEingabe") -or "g".Equals("$EinheitEingabe") -or "t".Equals("$EinheitEingabe"))) {$EinheitEingabe = "else"}


@ -154,26 +155,18 @@ function Calc_Byte_Sice ([Double]$Wert, [String]$EinheitEingabe, [String]$Einhei
} }
return $Wert return $Wert
} }
} #[value] [unit outpute] [unit input] } #[Wert] [Einheit-Ausgabe] [Einheit-Eingabe]


########################################################################################################## ##########################################################################################################


If ($args[0] -eq "--version") { #for each param do start(param)
echo "Version: 1.2" $args | ForEach-Object { Log_Start $_ }
} ElseIf ($args[0] -eq "--help") {
echo "./logwert.ps1 [log1] [log2] ..."
} Else {


#for each param do start(param) [String]$sLog_Copy_errors = "$Global:zLog_Copy_errors"
$args | ForEach-Object { Log_Start $_ } [String]$sLog_Copy_Size = [math]::round((Calc_Byte_Sice $Global:zLog_Copy_Size b $Global:Log_Copy_Size_Einheit), 2)
[String]$sLog_Copy_real_Size = [math]::round((Calc_Byte_Sice $Global:zLog_Copy_real_Size b $Global:Log_Copy_Size_Einheit), 2)
[String]$sLog_Copy_item = "$Global:zLog_Copy_item"
[String]$sLog_Copy_real_item = "$Global:zLog_Copy_real_item"
[String]$sLog_Copy_Size_Einheit = "$Global:Log_Copy_Size_Einheit"


[String]$sLog_Copy_errors = "$Global:zLog_Copy_errors" echo "Insgesamt: $sLog_Copy_real_item von $sLog_Copy_item Dateien kopiert, $sLog_Copy_errors Fehler, $sLog_Copy_real_Size $sLog_Copy_Size_Einheit von $sLog_Copy_Size $sLog_Copy_Size_Einheit kopiert"
[String]$sLog_Copy_Size = [math]::round((Calc_Byte_Sice $Global:zLog_Copy_Size b $Global:Log_Copy_Size_Einheit), 2)
[String]$sLog_Copy_real_Size = [math]::round((Calc_Byte_Sice $Global:zLog_Copy_real_Size b $Global:Log_Copy_Size_Einheit), 2)
[String]$sLog_Copy_item = "$Global:zLog_Copy_item"
[String]$sLog_Copy_real_item = "$Global:zLog_Copy_real_item"
[String]$sLog_Copy_Size_Einheit = "$Global:Log_Copy_Size_Einheit"

echo "Summary: $sLog_Copy_real_item of $sLog_Copy_item files copied, $sLog_Copy_errors errors, $sLog_Copy_real_Size $sLog_Copy_Size_Einheit of $sLog_Copy_Size $sLog_Copy_Size_Einheit copied"

}