Ako nájsť veľké súbory na disku pomocou PowerShell

Keď vás systém upozorní, že na disku je nedostatok voľného miesta, správca urobí najprv to, že nájde všetky veľké súbory, ktoré zaberajú najviac miesta. Pomocou Prieskumníka Windows môžete vyhľadávať veľké súbory (existuje niekoľko preddefinovaných vyhľadávacích šablón podľa veľkosti), vášho obľúbeného správcu súborov alebo pomocných programov tretích strán. Na rozdiel od PowerShell však všetky tieto nástroje vyžadujú inštaláciu do počítača. Pozrime sa na príklad rýchleho nájdenia veľkých súborov na disku pomocou PowerShell.

Ak chcete získať zoznam súborov v konkrétnom adresári (vrátane podpriečinkov) a ich veľkosti, môžete použiť cmdlet Get-ChildItem. Rutina môže vyhľadávať súbory na celom disku alebo v konkrétnom priečinku (napríklad v užívateľských profiloch alebo iných priečinkoch).

Zoznam 10 najväčších súborov v priečinku C: \:

Get-ChildItem c: \ -r | radiť - vzostupne - dĺžka vybavenia | vyberte - prvý názov, dĺžka

V závislosti od veľkosti disku a počtu súborov na ňom môže tento príkaz chvíľu trvať.

kľúč -r (Recurse) znamená, že je potrebné rekurzívne prechádzať všetky vnorené objekty (adresáre). Pomocou parametra môžete kontrolu obmedziť na určitú úroveň vnorenia -hĺbka.

Ak nezadáte cestu, vyhľadávanie sa vykoná vo všetkých podadresároch v aktuálnom adresári.

Ako vidíte, dostali sme zoznam desiatich najväčších súborov na disku zoradených podľa klesajúcej veľkosti súboru.

rada. Pri prístupe k niektorým adresárom aj s právami správcu môže cmdlet vrátiť chybu prístupu:

Get-ChildItem: Prístup bol odmietnutý na ceste „C: \ Windows \ CSC“.
riadok: 1 znak: 1
+ Get-ChildItem c: \ -r | zoradiť-vzostupne - dĺžka produktu | vyberte -firmy ...
+ ~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo: PovolenieDenied: (C: \ Windows \ CSC: String) [Get-ChildItem], UnauthorAccessException
+ Plne kvalifikovanýErrorId: DirUnauthorAccessError, Microsoft.PowerShell.Commands.GetChildItemCommand

Ak chcete potlačiť výskyt takýchto chýb, použite parameter -ErrorAction SilentlyContinue.

Ako vidíte, veľkosť súboru sa zobrazuje v bajtoch. Pre väčšie pohodlie môžu byť konvertované na megabajty. Okrem toho môžete zobraziť adresár, v ktorom je uložený nájdený súbor:

Get-ChildItem c: \ -r -ErrorAction SilentlyContinue | sort-descending -property length | vyberte - prvé meno, adresár, @ Name = "Mb"; výraz = [Math] :: round ($ _. length / 1MB, 2)

Výsledný štítok je možné previesť do praktického grafického tvaru pomocou rutiny Out-GridView:

Get-ChildItem c: \ -r | zoradiť-vzostupne - dĺžka produktu | vyberte - prvé meno, adresár, @ Name = "Mb"; výraz = [Math] :: round ($ _. length / 1MB, 2) | Out-GridView

Podobne môžete nájsť všetky súbory, ktoré sú väčšie ako určitá hodnota, napríklad 200 MB):

$ size = 200 * 1024 * 1024
GCi C: \ -recurse -ErrorAction SilentlyContinue | where-object $ _. length -gt $ size | Dĺžka triediaceho objektu | ft celé meno

Zoznam súborov je možné nahrať do súboru CSV takto:

GCi C: \ - opraviť | where-object $ _. length -gt $ size | Dĺžka triediaceho objektu | ft celé meno | Exportovať csv c: \ pc \ LargeFiles_Report.csv

Ak potrebujete vypočítať veľkosť všetkých súborov v adresári, použite článok: Ako určiť veľkosť adresára pomocou PowerShell.