Kako pronaći velike datoteke na disku pomoću PowerShell-a

Kad vas sustav obavijesti da na disku nema slobodnog prostora, prvo što administrator uradi je pokušati pronaći sve velike datoteke koje zauzimaju najviše prostora. Pomoću programa Windows Explorer možete pretraživati ​​velike datoteke (postoji nekoliko unaprijed definiranih predložaka pretraživanja), omiljeni upravitelj datoteka ili uslužne programe treće strane. Međutim, svi ti alati, za razliku od PowerShell-a, zahtijevaju instalaciju na računalu. Pogledajmo primjer brzog pronalaženja velikih datoteka na disku pomoću PowerShell-a.

Da biste dobili popis datoteka u određenoj mapi (uključujući podmape) i njihove veličine, možete koristiti cmdlet Get-ChildItem. Cmdlet može pretraživati ​​datoteke na cijelom disku ili u određenoj mapi (na primjer, u korisničkim profilima ili bilo kojim drugim mapama).

Navedi 10 najvećih datoteka na C: \:

Get-ChildItem c: \ -r | sortirati-silazno-dužina svojstva | odaberite-prvo 10 imena, dužina

Ovisno o veličini diska i broju datoteka na njemu, naredba može potrajati neko vrijeme.

ključ -r (Recurse) označava da je potrebno rekurzivno preći sve ugniježđene objekte (mape). Možete ograničiti provjeru na određenu razinu gniježđenja pomoću parametra -dubina.

Ako ne odredite put, pretraga će se izvršiti u svim poddirektorijima u trenutnom imeniku.

Kao što vidite, dobili smo popis deset najvećih datoteka na disku, poredane prema reducirajućoj veličini datoteke.

vijeće. Kad pristupa nekim direktorijima, čak i s pravima administratora, cmdlet može vratiti grešku u pristupu:

Get-ChildItem: Pristup odbijen na putu "C: \ Windows \ CSC".
redak: 1 znak: 1
+ Get-ChildItem c: \ -r | sortiraj-silazno-dužina svojstva | select -firs ...
+ ~~~~~~~~~~~~~~~~~~~~
+ KategorijaInfo: Dopuštena licenca: (C: \ Windows \ CSC: String) [Get-ChildItem], NeovlaštenoAccessException
+ FullyQualifiedErrorId: DirUnauthorizedAccessError, Microsoft.PowerShell.Commands.GetChildItemCommand

Za suzbijanje pojave takvih pogrešaka koristite parametar -ErrorAction SilentlyContinue.

Kao što vidite, veličina datoteke prikazana je u bajtovima. Radi praktičnosti, oni se mogu pretvoriti u megabajte. Pored toga, možete prikazati mapu u kojoj je pronađena pronađena datoteka:

Get-ChildItem c: \ -r -ErrorAction SilentlyContinue | sortiraj-silazno-dužina svojstva | odaberite -prvo 10 ime, Ime imenika, @ Name = "Mb"; Izraz = [Math] :: okruglo ($ _. dužina / 1MB, 2)

Rezultirajuća naljepnica može se pretvoriti u prikladan grafički oblik pomoću cmdleta Out-GridView:

Get-ChildItem c: \ -r | sortiraj-silazno-dužina svojstva | odaberite -prvo 10 ime, Ime imenika, @ Name = "Mb"; Izraz = [Math] :: okruglo ($ _. dužina / 1MB, 2) | Out-GridView

Slično tome, možete pronaći sve datoteke veće od određene vrijednosti, na primjer, 200 MB):

$ size = 200 * 1024 * 1024
GCi C: \ -recurse -ErrorAction SilentlyContinue | gdje-objekt $ _. dužina -gt $ size | Razvrstavanje-duljina objekta | ft puno ime

Popis datoteka može se prenijeti u CSV datoteku poput ove:

GCi C: \ -pojava | gdje-objekt $ _. dužina -gt $ size | Razvrstavanje-duljina objekta | ft puno ime | Export-Csv c: \ pc \ LargeFiles_Report.csv

Ako trebate izračunati veličinu svih datoteka u direktoriju, poslužite se člankom: Kako odrediti veličinu mape pomoću PowerShell-a.