Hogyan lehet megtudni a lemezen lévő mappák méretét a PowerShell használatával

A legtöbb Windows-felhasználó megszokta, hogy egy mappa méretének legegyszerűbb módja a tulajdonságok megnyitása a Windows Intézőben. A tapasztaltabbok inkább olyan segédprogramokat használnak, mint a TreeSize vagy a WinDirStat. Ha azonban részletesebb statisztikákat kell beszereznie egy adott könyvtár mappáinak méretéről, vagy ki kell zárnia bizonyos fájltípusokat, akkor ebben az esetben jobb a PowerShell szolgáltatások használata. Ebben a cikkben bemutatjuk, hogyan lehet gyorsan elérni egy adott könyvtár méretét a lemezen (vagy az összes alkönyvtárban) a PowerShell használatával.

tanács. Használhatja a du.exe konzol segédprogramot is, hogy megkapja a lemez egy adott mappájának méretét..

Parancsokkal fájlok és könyvtárak méretét szerezheti be a PowerShell-ben. Get-ChildItem (más néven gci) és Measure-Object (álnév mérték).

Az első parancsmag lehetővé teszi a megadott könyvtárban lévő fájlok listájának létrehozását a megadott feltételek szerint, a második pedig számtani.

tanács. Az egyik korábbi cikkünkben megmutattuk, hogyan lehet a Get-ChildItem parancsmagot használni a lemezen lévő TOP legnagyobb fájlok megtalálásához..

Például a c: \ ps mappa méretének meghatározásához futtassa a következő parancsot:

Get-ChildItem c: \ iso | Mérés-objektum -tulajdon hossza -összeg

Mint láthatja, az ebben a könyvtárban található fájlok teljes mérete az Összeg mezőben van feltüntetve, és körülbelül 2 GB (a méret bájtban van megadva).

A méret konvertálásához kényelmesebb MB vagy GB értékre használja a következő parancsot:

(gci c: \ iso | hosszúság-mértéke) .sum / 1Gb

vagy:

(gci c: \ iso | hosszúság-mértéke) .sum / 1Mb

Az eredmény két tizedesjegyre kerekítéséhez futtassa a következő parancsot:

"0: N2 GB" -f ((gci c: \ iso | hosszúság mértéke) .sum / 1Gb)

Egy adott könyvtáratípusba tartozó összes fájl teljes méretének kiszámításához használja a következő parancsot (például azt akarjuk, hogy az ISO fájlok teljes méretét egy mappában szerezzük meg):

(gci c: \ iso * .iso | intézkedés hossza -s) .sum / 1Mb

A fenti parancsok lehetővé teszik, hogy csak a megadott könyvtár teljes fájlmérete szerezzen be. Ha a mappa alkönyvtárakat tartalmaz, akkor a könyvtárakban szereplő fájlok méretét nem veszi figyelembe. Ahhoz, hogy egy könyvtárban lévő fájlok teljes méretét megkapja, figyelembe véve az alkönyvtárakat, használnia kell -recurse. Keresse meg a c: \ Windows mappában található összes fájl teljes méretét.

"0: N2 GB" -f ((gci -force c: \ Windows -Recurse -ErrorAction SilentlyContinue | hosszúságmérés) .sum / 1Gb)

A rejtett és a rendszerfájlok méretének figyelembevétele érdekében ezenkívül meghatároztam egy argumentumot -erő.

Tehát a meghajtón lévő C: \ Windows könyvtár mérete körülbelül 16 GB.

tanács. Ha nem szeretné megjeleníteni a könyvtárhozzáférési hibákat, használja a paramétert -ErrorAction SilentlyContinue.

Megkaphatja az összes első szintű almappa méretét a megadott könyvtárban. Például be kell szereznünk az összes felhasználói profil méretét a C: \ felhasználók mappában.

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

% - ez a hurok álneve foreach-objektum.

Menj tovább. Tegyük fel, hogy az a feladat, hogy megtudja az egyes könyvtárak méretét a rendszer merevlemezének gyökérzetében, és az információkat táblázatos formában nyújtsa be az elemzéshez, és képes legyen könyvtárak méret szerinti rendezése. Ehhez használja az Out-GridView parancsmagot.

A C: \ meghajtón lévő könyvtárak méretével kapcsolatos információkért futtassa a következő PowerShell szkriptet:

$ targetfolder = 'C: \'
$ dataColl = @ ()
gci -force $ targetfolder -ErrorAction SilentlyContinue | ? $ _ -is [io.directoryinfo] | %
$ len = 0
gci -recurse -force $ _. teljes név -ErrorAction SilentlyContinue | % $ len + = $ _. hossz
$ mapnamename = $ _. teljes név
$ foldersize = '0: N2' -f ($ len / 1Gb)
$ dataObject = Új objektum PSObject
Add-Member -inputObject $ dataObject -memberType NoteProperty -name “mapnamename” -value $ foldername
Add-Member -inputObject $ dataObject -memberType NoteProperty -name “foldersizeGb” -érték $ foldersize
$ dataColl + = $ dataObject

$ dataColl | Out-GridView - „Alkönyvtár mérete” cím

Mint látja, a táblának grafikus ábrázolással kell megjelennie, amelyben feltüntetik a C: \ rendszermeghajtó gyökérkönyvében lévő összes mappát és méretüket. A táblázat oszlopfejlécére kattintva rendezheti a mappákat méret szerint.