Kako doznati veličinu mapa na disku pomoću PowerShell-a

Većina korisnika Windowsa navikla je da je najlakši način da se dobije veličina mape otvaranje njenih svojstava u programu Windows Explorer. Iskusniji oni radije koriste alate poput TreeSize ili WinDirStat. Ali, ako trebate dobiti detaljnije statistike o veličini mapa u određenoj mapi ili isključiti određene vrste datoteka, u ovom slučaju bolje je koristiti značajke PowerShell-a. U ovom ćemo članku pokazati kako brzo dobiti veličinu određene mape na disku (ili svim poddirektorijima) pomoću PowerShell-a.

vijeće. Možete koristiti i uslužni program konzole du.exe da biste dobili veličinu određene mape na disku..

Pomoću naredbi možete dobiti veličine datoteka i direktorija u PowerShell-u. Get-ChildItem (alias gci) i Mjera-objekt (alias mjera).

Prvi cmdlet omogućuje vam kreiranje popisa datoteka u navedenom direktoriju prema određenim kriterijima, a drugi obavlja aritmetiku.

vijeće. U jednom od naših prethodnih članaka pokazali smo kako pomoću cmdleta Get-ChildItem pronaći najveće datoteke na disku..

Na primjer, da biste dobili veličinu mape c: \ ps, pokrenite naredbu:

Get-ChildItem c: \ iso | Mjera-objekt-duljina svojstva -sum

Kao što vidite, ukupna veličina datoteka u ovoj mapi je navedena u polju Zbir i iznosi oko 2 GB (veličina je u bajtovima).

Da biste pretvorili veličinu u prikladniji MB ili GB, koristite sljedeću naredbu:

(gci c: \ iso | mjera duljina -s) .sum / 1Gb

ili:

(gci c: \ iso | mjera duljina -s) .sum / 1Mb

Da biste rezultat zaokružili na dva decimalna mjesta, pokrenite naredbu:

"0: N2 GB" -f ((gci c: \ iso | mjeri dužinu -s) .sum / 1Gb)

Za izračunavanje ukupne veličine svih datoteka određene vrste u direktoriju koristite sljedeću naredbu (na primjer, želimo dobiti ukupnu veličinu ISO datoteka u mapi):

(gci c: \ iso * .iso | mjera duljina -s) .sum / 1Mb

Gore navedene naredbe omogućuju vam da u navedenoj mapi dobijete samo ukupnu veličinu datoteke. Ako mapa sadrži poddirektoriju, veličina datoteka u tim mapama neće se uzimati u obzir. Da biste dobili ukupnu veličinu svih datoteka u direktoriju, uzimajući u obzir poddirektoriju, morate koristiti parametar -Recurse. Dohvatite ukupnu veličinu svih datoteka u mapi c: \ Windows.

"0: N2 GB" -f ((gci -force c: \ Windows -Recurse -ErrorAction SilentlyContinue | mjeri dužinu -s) .sum / 1Gb)

Da bih uzeo u obzir veličinu skrivenih i sistemskih datoteka, dodatno sam odredio argument -sila.

Dakle, veličina direktorija C: \ Windows na našem disku iznosi oko 16 GB.

vijeće. Za prikaz pogrešaka u pristupu direktoriju koristite parametar -ErrorAction SilentlyContinue.

Možete dobiti veličinu svih podmapa prve razine u navedenom direktoriju. Na primjer, moramo dobiti veličinu svih korisničkih profila u mapi C: \ users.

gci -force 'C: \ Users'-ErrorAction SilentlyContinue | ? $ _ -je [io.directoryinfo] | %
$ len = 0
gci -recurse -force $ _. puno ime -ErrorAction SilentlyContinue | % $ len + = $ _. length
$ _. puno ime, '0: N2 GB' -f ($ len / 1Gb)

% - ovo je alias za petlju foreach-objekt.

Samo naprijed. Recimo da je vaš zadatak saznati veličinu svake mape u korijenu tvrdog diska sustava i predstaviti podatke u tabelarnom obliku prikladnom za analizu uz mogućnost sortiranja po veličini direktorija. Da biste to učinili, upotrijebite cmdlet Out-GridView.

Za informacije o veličini direktorija na pogonu C: \ pokrenite sljedeću skriptu PowerShell:

$ targetfolder = 'C: \'
$ dataColl = @ ()
gci -force $ targetfolder -ErrorAction SilentlyContinue | ? $ _ -je [io.directoryinfo] | %
$ len = 0
gci -recurse -force $ _. puno ime -ErrorAction SilentlyContinue | % $ len + = $ _. length
$ foldername = $ _. puno ime
$ foldersize = '0: N2' -f ($ len / 1Gb)
$ dataObject = PSObject novog objekta
Add-Member -inputObject $ dataObject -memberType NoteProperty -name "ime mape" -value $ ime mape
Add-Member -inputObject $ dataObject -memberType NoteProperty -name “foldersizeGb” -value $ folders size
$ dataColl + = $ dataObject

$ dataColl | Out-GridView -Title "Veličina poddirektorata"

Kao što vidite, trebali biste vidjeti grafički prikaz tablice u kojoj su naznačene sve mape u korijenu sistemskog pogona C: \ i njihova veličina. Klikom na naslov stupca tablice možete sortirati mape po veličini.