Hogyan találhat nagy fájlokat a lemezen a PowerShell használatával

Amikor a rendszer értesíti, hogy a lemezen nincs szabad hely, az adminisztrátor elsőként megpróbálja megkeresni a legnagyobb helyet foglaló nagy fájlokat. A Windows Intézővel nagy fájlokat (méret szerint több előre definiált keresési sablon is létezhet), kedvenc fájlkezelőjéhez vagy harmadik fél segédprogramjaihoz kereshet. Ezeket az eszközöket azonban, a PowerShell-lel ellentétben, számítógépre kell telepíteni. Nézzünk egy példát a nagy fájlok gyors megkeresésére a lemezen a PowerShell használatával.

Ha egy adott könyvtárban található fájlokat (beleértve az almappákat is) és azok méretét szeretné megtekinteni, akkor használja a parancsmagot Get-ChildItem. A parancsmag fájlokat kereshet az egész lemezen vagy egy adott mappában (például felhasználói profilokban vagy más mappákban)..

Sorolja fel a 10 legnagyobb fájlt a C: \:

Get-ChildItem c: \ -r | rendezés-csökkenő -arányhossz | válasszon - első 10 név, hossz

A lemez méretétől és a rajta lévő fájlok számától függően a parancs időt vehet igénybe.

kulcs -r (Újra) azt jelzi, hogy az összes beágyazott objektumot (könyvtárat) rekurzívan kell áthaladni. A paraméter segítségével korlátozhatja az ellenőrzést egy bizonyos fészkelési szintre -mélység.

Ha nem ad meg útvonalat, akkor a keresés az aktuális könyvtár összes alkönyvtárában fog végrehajtani.

Mint láthatja, a tíz legnagyobb fájl listáját kaptuk meg a lemezen, a csökkenő fájlméret szerint rendezve.

tanács. Ha néhány könyvtárat még rendszergazdai jogokkal is elér, a parancsmag hozzáférési hibát eredményezhet:

Get-ChildItem: A hozzáférés megtagadva a "C: \ Windows \ CSC" úton.
sor: 1 karakter: 1
+ Get-ChildItem c: \ -r | rendezés-csökkenő -tartomány hossza | válasszon -firs ...
+ ~~~~~~~~~~~~~~~~~~~~
+ Kategóriainformáció: PermissionDenied: (C: \ Windows \ CSC: String) [Get-ChildItem], UnauthorizedAccessException
+ FullyQualifiedErrorId: DirUnauthorizedAccessError, Microsoft.PowerShell.Commands.GetChildItemCommand

Az ilyen hibák megjelenésének megszüntetéséhez használja a paramétert -ErrorAction SilentlyContinue.

Mint láthatja, a fájl mérete bájtban jelenik meg. A kényelem kedvéért konvertálhatók megabájtokra. Ezenkívül megjelenítheti azt a könyvtárat, amelyben a talált fájlt tárolja:

Get-ChildItem c: \ -r -ErrorAction SilentlyContinue | rendezés-csökkenő -tulajdon hossza | válassza az első 10 név, DirectoryName, @ név = "Mb" kifejezést = [matematika] :: kerek ($ _. hossz / 1 MB, 2)

A kapott címkét kényelmes grafikus formákká alakíthatjuk az Out-GridView parancsmag segítségével:

Get-ChildItem c: \ -r | rendezés-csökkenő -tartomány hossza | válassza az első 10 név, DirectoryName, @ név = "Mb"; kifejezés = [matematika] :: kerek ($ _. hossz / 1 MB, 2) | Out-GridView

Hasonlóképpen megtalálja az összes olyan fájlt, amely nagyobb, mint egy bizonyos érték, például 200 MB):

$ méret = 200 * 1024 * 1024
GCi C: \ -folyamat -ErrorAction SilentlyConueue | ahol-objektum $ _. hossz -gt $ méret | Sort-Object hossza | láb teljes neve

A fájlok listája a következőképpen tölthető fel egy CSV-fájlba:

GCi C: \ -kifizetés | ahol-objektum $ _. hossz -gt $ méret | Sort-Object hossza | láb teljes neve | Export-Csv c: \ pc \ LargeFiles_Report.csv

Ha ki kell számítania egy könyvtár összes fájljának méretét, használja a következő cikket: Hogyan határozhatjuk meg a könyvtár méretét a PowerShell használatával?.