Ako zistiť veľkosť priečinkov na disku pomocou PowerShell

Väčšina používateľov systému Windows je zvyknutá, že najjednoduchším spôsobom, ako získať veľkosť priečinka, je otvoriť jeho vlastnosti v Prieskumníkovi systému Windows. Skúsenejší radšej používajú nástroje ako TreeSize alebo WinDirStat. Ak však potrebujete získať podrobnejšiu štatistiku o veľkosti priečinkov v konkrétnom adresári alebo vylúčiť určité typy súborov, v tomto prípade je lepšie použiť funkcie PowerShell. V tomto článku vám ukážeme, ako rýchlo získať veľkosť konkrétneho adresára na disku (alebo všetkých podadresároch) pomocou PowerShell.

rada. Na získanie veľkosti konkrétneho priečinka na disku môžete tiež použiť pomocný program konzoly du.exe..

Príkazy môžete použiť na získanie veľkosti súborov a adresárov v PowerShell. Get-ChildItem (alias gci) a Measure-Object (aliasy).

Prvý cmdlet vám umožňuje vytvoriť zoznam súborov v zadanom adresári podľa zadaných kritérií a druhý vykoná aritmetický postup..

rada. V jednom z našich predchádzajúcich článkov sme ukázali, ako pomocou rutiny Get-ChildItem nájsť najväčšie najväčšie súbory na disku..

Napríklad, ak chcete získať veľkosť priečinka c: \ ps, spustite príkaz:

Get-ChildItem c: \ iso | Measure-Object - Dĺžka vlastníctva -sum

Ako vidíte, celková veľkosť súborov v tomto adresári je uvedená v poli Sum a je asi 2 GB (veľkosť je v bajtoch).

Ak chcete previesť veľkosť na pohodlnejšie MB alebo GB, použite nasledujúci príkaz:

(gci c: \ iso | meranie dĺžok) .sum / 1Gb

alebo:

(gci c: \ iso | meranie dĺžok) .sum / 1Mb

Ak chcete výsledok zaokrúhliť na dve desatinné miesta, spustite príkaz:

"0: N2 GB" -f ((gci c: \ iso | meranie dĺžok -s) .sum / 1Gb)

Na výpočet celkovej veľkosti všetkých súborov určitého typu v adresári použite nasledujúci príkaz (napríklad chceme získať celkovú veľkosť súborov ISO v priečinku):

(gci c: \ iso * .iso | meranie dĺžok -s) .sum / 1Mb

Vyššie uvedené príkazy vám umožňujú získať iba celkovú veľkosť súboru v zadanom adresári. Ak priečinok obsahuje podadresáre, veľkosť súborov v týchto adresároch sa nebude brať do úvahy. Ak chcete získať celkovú veľkosť všetkých súborov v adresári, pričom musíte vziať do úvahy podadresáre, musíte použiť parameter -recurse. Získajte celkovú veľkosť všetkých súborov v priečinku c: \ Windows.

"0: N2 GB" -f ((gci -force c: \ Windows -Recurse -ErrorAction SilentlyContinue | meranie dĺžok -s) .sum / 1Gb)

Aby som vzal do úvahy veľkosť skrytých a systémových súborov, navyše som uviedol argument -sila.

Veľkosť adresára C: \ Windows na našej jednotke je teda asi 16 GB.

rada. Ak chcete zobraziť chyby prístupu k adresáru, použite parameter -ErrorAction SilentlyContinue.

Môžete získať veľkosť všetkých podpriečinkov prvej úrovne v zadanom adresári. Napríklad musíme získať veľkosť všetkých užívateľských profilov v priečinku C: \ users.

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

% - toto je alias pre slučku foreach-objekt.

Do toho. Povedzme, že vašou úlohou je zistiť veľkosť každého adresára v koreňovom adresári pevného disku systému a prezentovať informácie vo forme tabuľky vhodnej na analýzu s možnosťou triedenia podľa veľkosti adresárov. Na tento účel použite cmdlet Out-GridView.

Informácie o veľkosti adresárov na jednotke C: \ spustite nasledujúci skript PowerShell:

$ targetfolder = 'C: \'
$ dataColl = @ ()
gci -force $ targetfolder -ErrorAction SilentlyContinue | ? $ _ -is [io.directoryinfo] | %
$ len = 0
gci -recurse -force $ _. fullname -ErrorAction SilentlyContinue | % $ len + = $ _. length
$ foldername = $ _. celé meno
$ foldersize = '0: N2' -f ($ len / 1Gb)
$ dataObject = PSObject nového objektu
Add-Member -inputObject $ dataObject -memberType NoteProperty -name “foldername” - value $ foldername
Pridanie člena -inputObject $ dataObject -memberType NoteProperty -name “foldersizeGb” - hodnota $ foldersize
$ dataColl + = $ dataObject

$ dataColl | Out-GridView - Názov „Veľkosť podadresára“

Ako vidíte, mali by ste vidieť grafické znázornenie tabuľky, v ktorej sú vyznačené všetky priečinky v koreňovom adresári systémovej jednotky C: \ a ich veľkosť. Kliknutím na záhlavie stĺpca tabuľky môžete usporiadať priečinky podľa veľkosti.