new file: RozmiarBloku/RozamiarBloku.ps1
This commit is contained in:
parent
abbf490fb5
commit
c076adb13e
246
RozmiarBloku/RozamiarBloku.ps1
Normal file
246
RozmiarBloku/RozamiarBloku.ps1
Normal file
@ -0,0 +1,246 @@
|
|||||||
|
# Analizator Dysku
|
||||||
|
#
|
||||||
|
param (
|
||||||
|
[ValidatePattern("^[a-zA-Z]:\\$")]
|
||||||
|
[Parameter(Mandatory=$true, HelpMessage="Podaj literę dysku, np.: D:\")]
|
||||||
|
[string]$Litera_Dysku
|
||||||
|
)
|
||||||
|
if (-not(Test-Path $Litera_Dysku)) {
|
||||||
|
Write-Error "Dysk $Litera_Dysku nie istnieje"
|
||||||
|
}
|
||||||
|
$startdate = Get-Date
|
||||||
|
# Aktualny rozmiar bloku
|
||||||
|
$Block_Size = Get-CimInstance -ClassName Win32_Volume -Filter "DriveType = 3" | Where-Object name -eq $($Litera_Dysku) | Select-Object BlockSize -ExpandProperty BlockSize
|
||||||
|
[float]$Licznik_Folderow = 0
|
||||||
|
[float]$Licznik_Plikow = 0
|
||||||
|
[float]$Wielkosc_Plikow_suma = 0
|
||||||
|
[float]$wielkosc_Plikow_suma_KB = 0
|
||||||
|
[float]$wielkosc_Plikow_suma_MB = 0
|
||||||
|
[float]$wielkosc_Plikow_suma_GB = 0
|
||||||
|
$Wielkosc_Bloku = [System.Collections.Generic.List[pscustomobject]]::new()
|
||||||
|
$Wielkosc_Bloku_lista = [pscustomobject]@{
|
||||||
|
"0,5 KB" = 0
|
||||||
|
"1 KB" = 0
|
||||||
|
"2 KB" = 0
|
||||||
|
"4 KB" = 0
|
||||||
|
"8 KB" = 0
|
||||||
|
"16 KB" = 0
|
||||||
|
"32 KB" = 0
|
||||||
|
"64 KB" = 0
|
||||||
|
"128 KB" = 0
|
||||||
|
"256 KB" = 0
|
||||||
|
"512 KB" = 0
|
||||||
|
"1024 KB" = 0
|
||||||
|
"2048 KB" = 0
|
||||||
|
"4096 KB" = 0
|
||||||
|
"8192 KB" = 0
|
||||||
|
"16384 KB" = 0
|
||||||
|
"32768 KB" = 0
|
||||||
|
"65536 KB" = 0
|
||||||
|
"131072 KB" = 0
|
||||||
|
"262144 KB" = 0
|
||||||
|
"524288 KB" = 0
|
||||||
|
"1048576 KB" = 0
|
||||||
|
"1 GB+" = 0
|
||||||
|
}
|
||||||
|
$Wielkosc_Bloku.Add($Wielkosc_Bloku_lista)
|
||||||
|
|
||||||
|
$Rozszerzenia = [System.Collections.Generic.List[pscustomobject]]::new()
|
||||||
|
$rozszerzenia_lista = [PSCustomObject]@{
|
||||||
|
Rozszerzenie = ""
|
||||||
|
Ilosc = 0
|
||||||
|
}
|
||||||
|
$Rozszerzenia.Add($rozszerzenia_lista)
|
||||||
|
$glebokosc_start = $true
|
||||||
|
|
||||||
|
# Rozpoczęcie iterowania po dysku w poszukiwaniu wszystkich plików i folderów
|
||||||
|
Get-ChildItem -LiteralPath $Litera_Dysku -Recurse -Force | ForEach-Object {
|
||||||
|
# Jeżeli znaleziono folder
|
||||||
|
if ($_.PSIsContainer -eq $true) {
|
||||||
|
# Zwiększenie licznika folderów
|
||||||
|
$Licznik_Folderow++
|
||||||
|
# Zdefiniowanie głębokości
|
||||||
|
if ($glebokosc_start -eq $true) {
|
||||||
|
$Glebokosc_folderow = (($_.FullName.Split("\").count) -1)
|
||||||
|
$glebokosc_start = $false
|
||||||
|
} else {
|
||||||
|
# Przypisanie nowej większej głębokości
|
||||||
|
if ($Glebokosc_folderow -lt (($_.FullName.Split("\").count) -1)) {
|
||||||
|
$Glebokosc_folderow = (($_.FullName.Split("\").count) -1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# Jeżeli nie jest to folder
|
||||||
|
} else {
|
||||||
|
# Zwiększenie licznika plików
|
||||||
|
$Licznik_Plikow++
|
||||||
|
# Zsumowanie rozmiarów plików (2 miejsca po przecinku)
|
||||||
|
[float]$Wielkosc_Plikow_suma = [Math]::Round(($Wielkosc_Plikow_suma + [int]$_.Length), 2)
|
||||||
|
[float]$wielkosc_Plikow_suma_KB = [Math]::Round(($Wielkosc_Plikow_suma / 1KB), 2)
|
||||||
|
[float]$wielkosc_Plikow_suma_MB = [Math]::Round(($wielkosc_Plikow_suma / 1MB), 2)
|
||||||
|
[float]$wielkosc_Plikow_suma_GB = [Math]::Round(($wielkosc_Plikow_suma / 1GB), 2)
|
||||||
|
# Przypisanie pliku do grupy na podstawie rozmiaru bloku
|
||||||
|
$length = $_.Length
|
||||||
|
switch ($length) {
|
||||||
|
{ ($length -le 512) }
|
||||||
|
{
|
||||||
|
$Wielkosc_Bloku[0]."0,5 KB" = $Wielkosc_Bloku[0]."0,5 KB" + 1
|
||||||
|
}
|
||||||
|
{ ($length -gt 512) -and ($length -le 1024) }
|
||||||
|
{
|
||||||
|
$Wielkosc_Bloku[0]."1 KB" = $Wielkosc_Bloku[0]."1 KB" + 1
|
||||||
|
}
|
||||||
|
{ ($length -gt 1024) -and ($length -le 2048) }
|
||||||
|
{
|
||||||
|
$Wielkosc_Bloku[0]."2 KB" = $Wielkosc_Bloku[0]."2 KB" + 1
|
||||||
|
}
|
||||||
|
{ ($length -gt 2048) -and ($length -le 4096) }
|
||||||
|
{
|
||||||
|
$Wielkosc_Bloku[0]."4 KB" = $Wielkosc_Bloku[0]."4 KB" + 1
|
||||||
|
}
|
||||||
|
{ ($length -gt 4096) -and ($length -le 8192) }
|
||||||
|
{
|
||||||
|
$Wielkosc_Bloku[0]."8 KB" = $Wielkosc_Bloku[0]."8 KB" + 1
|
||||||
|
}
|
||||||
|
{ ($length -gt 8192) -and ($length -le 16384) }
|
||||||
|
{
|
||||||
|
$Wielkosc_Bloku[0]."16 KB" = $Wielkosc_Bloku[0]."16 KB" + 1
|
||||||
|
}
|
||||||
|
{ ($length -gt 16384) -and ($length -le 32768) }
|
||||||
|
{
|
||||||
|
$Wielkosc_Bloku[0]."32 KB" = $Wielkosc_Bloku[0]."32 KB" + 1
|
||||||
|
}
|
||||||
|
{ ($length -gt 32768) -and ($length -le 63488) }
|
||||||
|
{
|
||||||
|
$Wielkosc_Bloku[0]."64 KB" = $Wielkosc_Bloku[0]."64 KB" + 1
|
||||||
|
}
|
||||||
|
{ ($length -gt 63488) -and ($length -le 131072) }
|
||||||
|
{
|
||||||
|
$Wielkosc_Bloku[0]."128 KB" = $Wielkosc_Bloku[0]."128 KB" + 1
|
||||||
|
}
|
||||||
|
{ ($length -gt 131072) -and ($length -le 262144) }
|
||||||
|
{
|
||||||
|
$Wielkosc_Bloku[0]."256 KB" = $Wielkosc_Bloku[0]."256 KB" + 1
|
||||||
|
}
|
||||||
|
{ ($length -gt 262144) -and ($length -le 524288) }
|
||||||
|
{
|
||||||
|
$Wielkosc_Bloku[0]."512 KB" = $Wielkosc_Bloku[0]."512 KB" + 1
|
||||||
|
}
|
||||||
|
{ ($length -gt 524288) -and ($length -le 1048576) }
|
||||||
|
{
|
||||||
|
$Wielkosc_Bloku[0]."1024 KB" = $Wielkosc_Bloku[0]."1024 KB" + 1
|
||||||
|
}
|
||||||
|
{ ($length -gt 1048576) -and ($length -le 2097152) }
|
||||||
|
{
|
||||||
|
$Wielkosc_Bloku[0]."2048 KB" = $Wielkosc_Bloku[0]."2048 KB" + 1
|
||||||
|
}
|
||||||
|
{ ($length -gt 2097152) -and ($length -le 4194304) }
|
||||||
|
{
|
||||||
|
$Wielkosc_Bloku[0]."4096 KB" = $Wielkosc_Bloku[0]."4096 KB" + 1
|
||||||
|
}
|
||||||
|
{ ($length -gt 4194304) -and ($length -le 8388608) }
|
||||||
|
{
|
||||||
|
$Wielkosc_Bloku[0]."8192 KB" = $Wielkosc_Bloku[0]."8192 KB" + 1
|
||||||
|
}
|
||||||
|
{ ($length -gt 8388608) -and ($length -le 16777216) }
|
||||||
|
{
|
||||||
|
$Wielkosc_Bloku[0]."16384 KB" = $Wielkosc_Bloku[0]."16384 KB" + 1
|
||||||
|
}
|
||||||
|
{ ($length -gt 16777216) -and ($length -le 33554432) }
|
||||||
|
{
|
||||||
|
$Wielkosc_Bloku[0]."32768 KB" = $Wielkosc_Bloku[0]."32768 KB" + 1
|
||||||
|
}
|
||||||
|
{ ($length -gt 33554432) -and ($length -le 67108864) }
|
||||||
|
{
|
||||||
|
$Wielkosc_Bloku[0]."65536 KB" = $Wielkosc_Bloku[0]."65536 KB" + 1
|
||||||
|
}
|
||||||
|
{ ($length -gt 67108864) -and ($length -le 134217728) }
|
||||||
|
{
|
||||||
|
$Wielkosc_Bloku[0]."131072 KB" = $Wielkosc_Bloku[0]."131072 KB" + 1
|
||||||
|
}
|
||||||
|
{ ($length -gt 134217728) -and ($length -le 268435456) }
|
||||||
|
{
|
||||||
|
$Wielkosc_Bloku[0]."262144 KB" = $Wielkosc_Bloku[0]."262144 KB" + 1
|
||||||
|
}
|
||||||
|
{ ($length -gt 268435456) -and ($length -le 536870912) }
|
||||||
|
{
|
||||||
|
$Wielkosc_Bloku[0]."524288 KB" = $Wielkosc_Bloku[0]."524288 KB" + 1
|
||||||
|
}
|
||||||
|
{ ($length -gt 536870912) -and ($length -le 1073741824) }
|
||||||
|
{
|
||||||
|
$Wielkosc_Bloku[0]."1048576 KB" = $Wielkosc_Bloku[0]."1048576 KB" + 1
|
||||||
|
}
|
||||||
|
default {
|
||||||
|
$Wielkosc_Bloku[0]."1 GB+" = $Wielkosc_Bloku[0]."1 GB+" + 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($Rozszerzenia.Rozszerzenie -contains $_.Extension) {
|
||||||
|
$ext = $_.Extension
|
||||||
|
$extension = $Rozszerzenia | Where-Object { $_.Rozszerzenie -eq $ext }
|
||||||
|
if ($extension) {
|
||||||
|
$index = $Rozszerzenia.IndexOf($extension)
|
||||||
|
$Rozszerzenia[$index].Ilosc = $Rozszerzenia[$index].Ilosc + 1
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$rozszerzenia_lista = [PSCustomObject]@{
|
||||||
|
Rozszerzenie = $_.Extension
|
||||||
|
Ilosc = 1
|
||||||
|
}
|
||||||
|
$Rozszerzenia.Add($rozszerzenia_lista)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$enddate = Get-Date
|
||||||
|
Clear-Host
|
||||||
|
""
|
||||||
|
Start-Sleep 1
|
||||||
|
Write-Host "Skrypt wystartował o: " -NoNewline
|
||||||
|
Write-Host "$startdate" -ForegroundColor Green
|
||||||
|
Write-Host "Skrypt zatrzymał się o: " -NoNewline
|
||||||
|
Write-Host "$enddate" -ForegroundColor Green
|
||||||
|
Write-Host "Skrypt trwał: " -NoNewline
|
||||||
|
Write-Host "$($enddate - $startdate)" -ForegroundColor Green
|
||||||
|
""
|
||||||
|
Start-Sleep 1
|
||||||
|
Write-Host "Przeskanowano " -NoNewline
|
||||||
|
Write-Host "$Licznik_Plikow" -NoNewline -ForegroundColor Green
|
||||||
|
Write-Host " plików i " -NoNewline
|
||||||
|
Write-Host "$Licznik_Folderow" -NoNewline -ForegroundColor Green
|
||||||
|
Write-Host " folderów gdzie najgłębsze zagnieżdżenie wynosi " -NoNewline
|
||||||
|
Write-Host "$Glebokosc_folderow" -ForegroundColor Green -NoNewline
|
||||||
|
Write-host "."
|
||||||
|
Start-Sleep 1
|
||||||
|
Write-Host "Znaleziono " -NoNewline
|
||||||
|
Write-host "$($Rozszerzenia.Count)" -ForegroundColor Green -NoNewline
|
||||||
|
Write-Host "unikalnych rodzajów plików które dzielą się następująco:"
|
||||||
|
$Rozszerzenia = $rozszerzenia | Sort-Object Ilosc
|
||||||
|
for ($i = 0; $i -lt $Rozszerzenia.Count; $i++) {
|
||||||
|
Write-Host "Znaleziono " -NoNewline
|
||||||
|
Write-Host "$($Rozszerzenia[$i].Ilosc)" -ForegroundColor Green -NoNewline
|
||||||
|
Write-Host " plików o rozszerzeniu " -NoNewline
|
||||||
|
Write-Host "$($Rozszerzenia[$i].Rozszerzenie)" -ForegroundColor Green
|
||||||
|
}
|
||||||
|
""
|
||||||
|
Start-Sleep 1
|
||||||
|
Write-Host "Aktualny rozmiar bloku to: " -NoNewline
|
||||||
|
Write-Host $Block_Size -ForegroundColor Green
|
||||||
|
Write-Host "Gdzie suma rozmiarów plików w B to: " -NoNewline
|
||||||
|
Write-host "$($Wielkosc_Plikow_suma)" -ForegroundColor Green
|
||||||
|
Write-Host "Gdzie średni rozmiar pliku w B to: " -NoNewline
|
||||||
|
Write-host "$($Wielkosc_Plikow_suma / $Licznik_Plikow)" -ForegroundColor Green
|
||||||
|
Write-Host "Gdzie suma rozmiarów plików w KB to: " -NoNewline
|
||||||
|
Write-host "$($Wielkosc_Plikow_suma_KB)" -ForegroundColor Green
|
||||||
|
Write-Host "Gdzie średni rozmiar pliku w KB to: " -NoNewline
|
||||||
|
Write-host "$($wielkosc_Plikow_suma_KB / $Licznik_Plikow)" -ForegroundColor Green
|
||||||
|
Write-Host "Gdzie suma rozmiarów plików w MB to: " -NoNewline
|
||||||
|
Write-host "$($Wielkosc_Plikow_suma_MB)" -ForegroundColor Green
|
||||||
|
Write-Host "Gdzie średni rozmiar pliku w MB to: " -NoNewline
|
||||||
|
Write-host "$($wielkosc_Plikow_suma_MB / $Licznik_Plikow)" -ForegroundColor Green
|
||||||
|
Write-Host "Gdzie suma rozmiarów plików w GB to: " -NoNewline
|
||||||
|
Write-host "$($Wielkosc_Plikow_suma_GB)" -ForegroundColor Green
|
||||||
|
Write-Host "Gdzie średni rozmiar pliku w GB to: " -NoNewline
|
||||||
|
Write-host "$($wielkosc_Plikow_suma_GB / $Licznik_Plikow)" -ForegroundColor Green
|
||||||
|
Write-Host "Znalezione pliki można przypisać do następujących bloków: "
|
||||||
|
$wielkosc_bloku
|
||||||
|
Start-Sleep 1
|
||||||
|
$wielkosc_bloku | Export-Csv -Path "$($env:userprofile)\wielkosc_bloku.csv" -NoTypeInformation -Force
|
||||||
|
Write-Host "Plik wielkosc_bloku.csv zapisano w w lokalizacji $($env:userprofile)"
|
Loading…
x
Reference in New Issue
Block a user