diff --git a/RozmiarBloku/RozamiarBloku.ps1 b/RozmiarBloku/RozamiarBloku.ps1 index f302f2e..b30103e 100644 --- a/RozmiarBloku/RozamiarBloku.ps1 +++ b/RozmiarBloku/RozamiarBloku.ps1 @@ -272,4 +272,65 @@ Write-host "$minValue" -ForegroundColor Green -NoNewline Write-Host " plików." $wielkosc_bloku | Export-Csv -Path "$($env:userprofile)\wielkosc_bloku.csv" -NoTypeInformation -Force -Write-Host "Plik wielkosc_bloku.csv zapisano w w lokalizacji $($env:userprofile)" \ No newline at end of file +Write-Host "Plik wielkosc_bloku.csv zapisano w w lokalizacji $($env:userprofile)" +Start-Sleep 1 + +$wielkosc_bloku_new = ($wielkosc_bloku.psobject.Properties.value[4].psobject.Members.Where({$_.membertype -eq "noteproperty"}) | select name,value) +[array]$tmp = @() +for ($i = 0; $i -lt $wielkosc_bloku_new.Count; $i++) { + if ($wielkosc_bloku_new[$i].name -eq "0,5 KB") { + [array]$tmp += [PSCustomObject]@{ + "Rozmiar bloku" = $wielkosc_bloku_new[$i].name + "Ilosc plikow" = $wielkosc_bloku_new[$i].value + "Suma KB" = [float]($wielkosc_bloku_new[$i].value) / 2 + } + } elseif ($wielkosc_bloku_new[$i].name -eq "1 GB+") { + [array]$tmp += [PSCustomObject]@{ + "Rozmiar bloku" = $wielkosc_bloku_new[$i].name + "Ilosc plikow" = $wielkosc_bloku_new[$i].value + "Suma KB" = "n/d" + } + } else { + [array]$tmp += [PSCustomObject]@{ + "Rozmiar bloku" = $wielkosc_bloku_new[$i].name + "Ilosc plikow" = $wielkosc_bloku_new[$i].value + "Suma KB" = [Int64]($wielkosc_bloku_new[$i].value) * [Int64]($wielkosc_bloku_new[$i].name.Split(" ")[0]) + } + } +} +[array]$tmp | Sort-Object "Suma KB" -Descending | Format-Table + +$allValues = $tmp | Where-Object "Rozmiar bloku" -ne "1 GB+" | ForEach-Object { [Int64]$_."Suma KB" } +$sortedValues = $allValues | Sort-Object +if ($sortedValues.Count % 2 -eq 0) { + $middle = $sortedValues.Count / 2 + $median = ($sortedValues[$middle - 1] + $sortedValues[$middle]) / 2 +} else { + $middle = [math]::Floor($sortedValues.Count / 2) + $median = [Math]::Round($sortedValues[$middle], 2) +} + +Write-host "Mediana z tych wartości to: " -NoNewline +write-host "$median" -ForegroundColor green -NoNewline +Write-Host " KB." + +[Int64]$minValue = ($tmp | Where-Object "Rozmiar bloku" -ne "1 GB+" | Measure-Object "Suma KB" -Minimum | Select-Object -ExpandProperty Minimum) +[Int64]$maxValue = ($tmp | Where-Object "Rozmiar bloku" -ne "1 GB+" | Measure-Object "Suma KB" -Maximum | Select-Object -ExpandProperty Maximum) +[float]$avgValue = ($tmp | Where-Object "Rozmiar bloku" -ne "1 GB+" | Measure-Object "Suma KB" -Average | Select-Object -ExpandProperty Average) + +Write-host "Średnia z tych wartości to: " -NoNewline +Write-host "$avgValue" -ForegroundColor Green -NoNewline +Write-Host " KB." +Write-host "Największa wartość to: " -NoNewline +Write-host "$maxValue" -ForegroundColor Green -NoNewline +Write-Host " KB." +Write-host "Najmniejsza wartość to: " -NoNewline +Write-host "$minValue" -ForegroundColor Green -NoNewline +Write-Host " KB." + +Write-Host "Wartości najbliższe dla mediany to: " +$tmp | Where-Object "Rozmiar bloku" -ne "1 GB+" | Where-Object {[float]$_."Suma KB" -le $median} | Sort-Object "Suma KB" -Descending | Select-Object -First 1 +$tmp | Where-Object "Rozmiar bloku" -ne "1 GB+" | Where-Object {[float]$_."Suma KB" -ge $median} | Sort-Object "Suma KB" | Select-Object -First 1 + +$tmp | Export-Csv -Path "$($env:userprofile)\wielkosc_bloku_sumaKB.csv" -NoTypeInformation -Force +Write-Host "Plik wielkosc_bloku_sumaKB.csv zapisano w w lokalizacji $($env:userprofile)" \ No newline at end of file