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.