modified: RozmiarBloku/RozamiarBloku.ps1

This commit is contained in:
Tomasz Kostrzewa 2024-06-19 07:22:59 +02:00
parent 28b1854165
commit fc348cdb4f

View File

@ -273,3 +273,64 @@ 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)"
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)"