Hoe meet je de mapgrootte met PowerShell op Windows?

Het kan best lastig zijn om te achterhalen hoeveel schijfruimte een map in beslag neemt in Windows, vooral als je met enorme mappen te maken hebt of gewoon een snelle en flexibele manier wilt om de grootte te bekijken zonder afhankelijk te zijn van tools van derden zoals TreeSize of WinDirStat. PowerShell biedt hier uitkomst. Het is niet perfect, maar wel krachtig genoeg om je een nauwkeurig beeld te geven van het schijfgebruik, inclusief verborgen of systeembestanden, en je kunt bestanden filteren op type, aanmaakdatum of andere eigenschappen. Bovendien is het handig als je deze statistieken regelmatig nodig hebt of het proces wilt automatiseren.

Hoe u PowerShell kunt gebruiken om de mapgrootte in Windows te controleren

De grootte van een map opvragen met PowerShell

Met deze methode kunt u zien hoeveel ruimte een specifieke map in beslag neemt, zelfs inclusief submappen. Het is ideaal als u snel een idee wilt hebben van de grootte van uw bestanden op de schijf.

  • Open PowerShell — U kunt op drukken Win + Xen Windows PowerShell of Windows Terminal met het PowerShell-tabblad selecteren.
  • Navigeer naar uw map of voer de opdracht direct uit. Als u bijvoorbeeld D:\ISO wilt controleren, voert u dit commando uit:
(Get-ChildItem D:\ISO -Force -Recurse -ErrorAction SilentlyContinue | Measure-Object Length -Sum).Sum / 1GB

Deze opdracht geeft een lijst van alle bestanden in D:\ISO, inclusief verborgen/systeembestanden (-Force), in alle submappen (-Recurse), negeert ontoegankelijke bestanden (-ErrorAction SilentlyContinue), telt alle bestandsgroottes bij elkaar op en deelt vervolgens door 1 GB om de geschatte grootte in gigabytes te verkrijgen.

Uitleg van de parameters en hun functie

  • -Forceer : hiermee worden verborgen en systeembestanden meegenomen (omdat anders sommige grote bestanden mogelijk niet zichtbaar zijn).
  • -Recursie : zorgt ervoor dat submappen worden meegenomen — dit zorgt vaak voor problemen, dus vergeet het niet.
  • -ErrorAction SilentlyContinue : slaat bestanden over waarvoor u geen machtigingen hebt.(In sommige configuraties worden er mogelijk veel bestanden overgeslagen, in andere minder.)
  • Measure-Object Length -Sum : telt alle bestandsgroottes bij elkaar op, waarbij Length de eigenschap is die de bestandsgrootte opslaat.
  • / 1GB : converteert bytes naar gigabytes voor betere leesbaarheid, omdat bytes weinig zinvol zijn voor grote mappen.

Als je alles bij elkaar optelt, krijg je een geschatte grootte van de map. Als je het resultaat afgerond op twee decimalen wilt (voor een betere leesbaarheid), gebruik dan dit:

"{0:N2} GB" -f ((Get-ChildItem D:\ISO -Force -Recurse -ErrorAction SilentlyContinue | Measure-Object Length -Sum).Sum / 1GB)

Filteren op bestandstype of datum — handig om dieper te zoeken.

Als je alleen ISO-bestanden of bestanden die in 2024 zijn gemaakt wilt zien, kun je de commando’s aanpassen. Om bijvoorbeeld alleen ISO-bestanden te controleren:

"{0:N2} GB" -f ((Get-ChildItem D:\ISO *.iso -Force -Recurse -ErrorAction SilentlyContinue | Measure-Object Length -Sum).Sum / 1GB)

En voor bestanden die na 1 januari 2024 zijn aangemaakt:

(Get-ChildItem D:\ISO -Force -Recurse -ErrorAction SilentlyContinue | ? { $_. CreationTime -gt '1/1/24' } | Measure-Object Length -Sum).Sum / 1GB

Een waarschuwing vooraf: als je symbolische links of harde links hebt, kan de bestandsgrootte vertekend zijn omdat PowerShell gekoppelde bestanden mogelijk meer dan eens telt. Om dit te voorkomen, kun je links filteren, maar dat is een meer geavanceerde methode.

Grootte van submappen opvragen met een script

Wil je snel een overzicht van alle submappen op het hoogste niveau en hun grootte (en het aantal bestanden erin)? Dan is een klein scriptje voldoende. Het script genereert een tabel waarin je kunt sorteren op grootte of aantal bestanden – superhandig om te achterhalen welke gebruikersprofielen of projectmappen de meeste ruimte in beslag nemen.

$targetfolder='C:\Users' $dataColl = @() Get-ChildItem -Path $targetfolder -Force -ErrorAction SilentlyContinue | Where-Object { $_ -is [IO. DirectoryInfo] } | ForEach-Object { $sizeInBytes = 0 Get-ChildItem -Path $_. FullName -Recurse -Force -ErrorAction SilentlyContinue | ForEach-Object { $sizeInBytes += $_. Length } $fileCount = (Get-ChildItem -Path $_. FullName -Recurse -Force -File -ErrorAction SilentlyContinue | Measure-Object).Count $obj = [PSCustomObject]@{ Folder = $_. FullName SizeGB = '{0:N3}' -f ($sizeInBytes / 1GB) FileCount = $fileCount } $dataColl += $obj } $dataColl | Out-GridView -Title "Subfolder sizes and file counts"

Dit script haalt alle hoofdmappen in C:\Users op, telt hun grootte bij elkaar op, telt het aantal bestanden en toont het resultaat overzichtelijk in een venster. Je kunt de resultaten desgewenst exporteren naar CSV of Excel. Ik heb gezien dat het werkt in verschillende PowerShell-versies, waaronder PS 7.x, dus het is vrij universeel.

Let op: op sommige systemen kan het traag zijn, vooral bij zeer grote mappen. Geduld is een schone zaak. Nog iets: soms kan het script harde of symbolische links dubbel opnemen, waardoor de bestandsgrootte enigszins kan afwijken als er veel links in die map voorkomen.

Samenvatting

Het gebruik van PowerShell voor het meten van de mapgrootte biedt veel flexibiliteit, vooral als je gewend raakt aan het aanpassen van filters of het uitvoeren van bulkscans. Het is misschien wat omslachtig, maar het werkt zonder dat je extra software hoeft te installeren. Houd er wel rekening mee dat deze commando’s bij benadering zijn en beïnvloed kunnen worden door links of machtigingen.

Samenvatting

  • Gebruik PowerShell-opdrachten met `Get-ChildItem` en `Measure-Object` om de grootte van mappen te achterhalen.
  • Voeg filters toe zoals `*.iso` of datumbereiken voor specifieke bestanden.
  • Voer scripts uit om meerdere submappen tegelijk te controleren en de gegevens te visualiseren.
  • Onthoud dat symbolische of harde links de cijfers kunnen beïnvloeden.

Samenvatting

Zelf uitrekenen hoeveel ruimte je mappen innemen, zonder extra tools, is erg handig. Het is niet altijd perfect, vooral bij complexe mapstructuren, maar het is goed genoeg voor een snelle schatting. Bovendien kun je het aanpassen aan vrijwel elke situatie. Houd er wel rekening mee dat het trager kan werken bij erg grote mappen of veel links. Hopelijk bespaart dit iemand die schijfruimte wil vrijmaken of mappen wil controleren een paar uur. Ik hoop dat dit helpt!