Ko vas sistem obvesti, da na disku zmanjka prostora, najprej skrbnik poizkusi najti vse velike datoteke, ki zasedejo največ prostora. V programu Windows Explorer lahko iščete velike datoteke (obstaja več vnaprej določenih predlog za iskanje), vaš najljubši upravitelj datotek ali druge pripomočke. Vendar pa vsa ta orodja, za razliko od PowerShell-a, zahtevajo namestitev v računalnik. Poglejmo primer hitrega iskanja velikih datotek na disku s pomočjo PowerShell-a.
Če želite dobiti seznam datotek v določenem imeniku (vključno s podmapami) in njihove velikosti, lahko uporabite ukazni ukaz Get-Childitem. Cmdlet lahko išče datoteke po disku ali v določeni mapi (na primer v uporabniških profilih ali drugih mapah).
Naštejte 10 največjih datotek na C: \:
Get-ChildItem c: \ -r | sortirati-padajoče-dolžina lastnosti | izberite -prvo 10 ime, dolžina
Glede na velikost diska in število datotek na njem lahko ukaz traja nekaj časa.
Ključ -r (Ponavljanje) pomeni, da je treba rekurzivno prečkati vse ugnezdene predmete (imenike). Preverjanje lahko omejite na določeno raven gnezdenja s parametrom -Globina.Če poti ne določite, bo iskanje izvedeno v vseh poddirektorjih v trenutnem imeniku.
Kot vidite, smo dobili seznam desetih največjih datotek na disku, razvrščenih po vrstnem redu zmanjšanja velikosti datoteke.
Namig. Ko dostopa do nekaterih imenikov, tudi s skrbniškimi pravicami, cmdlet lahko vrne napako pri dostopu:Get-ChildItem: dostop na poti "C: \ Windows \ CSC" zavrnjen.
vrstica: 1 znak: 1
+ Get-ChildItem c: \ -r | sortiraj-padajoče-dolžina lastnosti | izberi -firs ...
+ ~~~~~~~~~~~~~~~~~~~~~
+ KategorijaInfo: DovoljenjeDenied: (C: \ Windows \ CSC: String) [Get-ChildItem], NepooblaščenoAccessException
+ FullyQualifiedErrorId: DirUnauthorizedAccessError, Microsoft.PowerShell.Commands.GetChildItemCommand
Za zaustavitev pojava takšnih napak uporabite parameter -ErrorAction SilentlyContinue.
Kot vidite, je velikost datoteke prikazana v bajtih. Za udobje jih je mogoče pretvoriti v megabajte. Poleg tega lahko prikažete imenik, v katerem je shranjena najdena datoteka:
Get-ChildItem c: \ -r -ErrorAction SilentlyContinue | sortiraj-padajoče-dolžina lastnosti | izberite -prvo 10 ime, Ime imenika, @ Ime = "Mb"; Izraz = [Math] :: krog ($ _. dolžina / 1 MB, 2)
Nastalo nalepko lahko pretvorite v priročno grafično obliko s pomočjo ukaznega okna Out-GridView:
Get-ChildItem c: \ -r | sortiraj-padajoče-dolžina lastnosti | izberite -prvo 10 ime, Ime imenika, @ Ime = "Mb"; Izraz = [Math] :: krog ($ _. dolžina / 1 MB, 2) | Pogled zunaj omrežja
Podobno lahko najdete vse datoteke, ki so večje od določene vrednosti, na primer 200 MB):
$ velikost = 200 * 1024 * 1024
GCi C: \ -recurse -ErrorAction SilentlyContinue | kjer-objekt $ _. dolžina -gt $ size | Razvrsti-dolžina predmeta | ft polno ime
Seznam datotek se lahko naloži v datoteko CSV, kot je ta:
GCi C: \ -potekanje | kjer-objekt $ _. dolžina -gt $ size | Razvrsti-dolžina predmeta | ft polno ime | Export-Csv c: \ pc \ LargeFiles_Report.csv
Če morate izračunati velikost vseh datotek v imeniku, uporabite članek: Kako določiti velikost imenika s pomočjo PowerShell.