Mapgrootte verkrijgen met PowerShell in Windows 11/10

Mapgrootte verkrijgen met PowerShell in Windows 11/10

Meestal kunt u op een Windows-pc de grootte van een item of map controleren door met de rechtermuisknop op het item of de map te klikken en Eigenschappen te selecteren in het contextmenu. In dit bericht laten we u zien hoe u de mapgrootte kunt controleren of verkrijgen met PowerShell in Windows 11/10.

Een use-case waarbij u mogelijk PowerShell wilt gebruiken in plaats van de conventionele manier om een ​​map te krijgen, is als de grootte van het item of de map aanzienlijk groter is, bijvoorbeeld groter dan 100 GB. In dit geval kan het op de conventionele manier enige tijd duren voordat het venster Eigenschappen van de map eindelijk de grootte van het item vult – meer nog, wat wordt weergegeven, is mogelijk niet de werkelijke grootte van de map.

Mapgrootte verkrijgen met PowerShell in Windows 11/10

Om de een of andere reden hebt u mogelijk de grootte van een map nodig, bijvoorbeeld om de tijd of duur in te schatten die nodig is om de map te verplaatsen (naar een andere locatie op de lokale schijf, externe schijf of cloudopslag) of, indien aanzienlijk een grote map om deze eenvoudig te verwijderen om ruimte op uw harde schijf vrij te maken – u kunt direct de grootte van een map/directory krijgen met behulp van PowerShell. We zullen dit onderwerp onder de volgende kopjes bespreken.

  1. PowerShell-opdrachten om de mapgrootte te krijgen
  2. Krijg de mapgrootte in bytes, MB’s en GB’s
  3. Krijg de mapgrootte in decimalen
  4. Krijg de grootte van specifieke bestandstype-items
  5. Download de grootte van een map en submappen
  6. Krijg map- en submapformaten met een tijdfilter
  7. Haal alle subdirectory-mapgroottes op met behulp van het PowerShell-script

1] PowerShell-opdrachten om de mapgrootte te krijgen

Hieronder volgen de 2 primaire PowerShell-cmdlets die kunnen worden gebruikt met schakelaars en parameters om de resultaten volgens uw vereisten te filteren om de grootte van een map te krijgen.

  • Get-ChildItem (Alias: GCI) – Deze opdracht haalt de informatie uit een of gespecificeerde mappen, inclusief de submappen – lege mappen worden niet weergegeven of getoond.
  • Measure-Object (Alias: measure) – Deze opdracht berekent de verschillende eigenschappen van een opgegeven map, inclusief de grootte.

Een alias is een alternatieve naam voor de opdracht, zodat u niet elke keer de hele opdracht hoeft in te typen.

2] Krijg de mapgrootte in bytes, MB’s en GB’s

Mapgrootte in bytes :

Krijg de mapgrootte in bytes

Get-ChildItem PathToFolder | Measure-Object -Property Length -sum

Mapgrootte in MB’s :

Krijg de mapgrootte in MB's

(gci PathToFolder | measure Length -s).sum / 1Mb

Mapgrootte in GB :

Krijg de mapgrootte in GB's

(gci PathToFolder | measure Length -s).sum / 1Gb

Het veld “Sum” geeft de grootte van de map weer in bytes, MB’s en GB’s, naargelang het geval.

3] Krijg de mapgrootte in decimalen

Krijg de mapgrootte in decimalen

De uitvoer voor de mapgrootte in MB’s en GB’s is dubbelzinnig om in één oogopslag te begrijpen omdat de grootte in veel cijfers achter de komma staat. U kunt dus de onderstaande opdracht uitvoeren om het resultaat in decimaal af te ronden. Vervang ” X ” door het aantal decimalen waarop u het resultaat wilt afronden en geef zo ​​nodig GB of MB op.

"{0:NX} GB"-f ((gci PathToFolder | measure Length -s).sum / 1Gb)

4] Krijg de grootte van specifieke bestandstype-items

Krijg de grootte van specifieke bestandstype-items

Als u de grootte wilt weten van alle items in een map met hetzelfde bestandstype/extensie, voert u de onderstaande opdracht uit. Vervang de tijdelijke aanduiding voor FileType/Extensie dienovereenkomstig.

(gci PathToFolder *.FileType/Extension | measure Length -s).sum / 1Gb

5] Krijg de grootte van mappen en submappen

Krijg de grootte van mappen en submappen

Om de grootte van de map en submap (inclusief de items erin) te krijgen, moet u de -Recurseparameter gebruiken die wordt gebruikt in combinatie met de -ErrorAction SilentlyContinueparameter om fouten in de toegang tot de map te omzeilen, zoals toestemming is geweigerd, enz.

Om de grootte van zowel de bovenliggende als de submappen te krijgen, kunt u een van de onderstaande opdrachten uitvoeren.

(gci PathToFolder –Recurse -ErrorAction SilentlyContinue| measure Length -s).sum / 1Gb "{0:NX} GB"-f ((gci –force PathToFolder –Recurse -ErrorAction SilentlyContinue| measure Length -s).sum / 1Gb)

Deze cmdlet bevat ook de grootte van verborgen items.

6] Krijg een map en submapgroottes met een tijdfilter

Krijg map- en submapformaten met tijdfilter

U kunt de grootte van de bovenliggende en onderliggende mappen krijgen en ook filters toepassen om de grootte te vinden van de items die op een specifieke dag, een specifieke maand of een specifiek jaar zijn gemaakt. Dit kunt u definiëren door de begin- en einddatum op te geven, die respectievelijk worden gedefinieerd door de parameters -gt(groter dan) en -lt(kleiner dan). Het formaat van de datums is MM/DD/JJ.

Voer de onderstaande opdracht uit om de grootte te krijgen van een map met submappen die in een specifieke periode zijn gemaakt. Vervang de tijdelijke aanduiding MM/DD/JJ dienovereenkomstig.

(gci -force PathToFolder –Recurse -ErrorAction SilentlyContinue |? {$_.CreationTime -gt ‘MM/DD/YY’ -AND $_.CreationTime -lt ‘MM/DD/YY’}| measure Length -s).sum / 1Gb

U kunt deze filters ook toepassen met behulp van de eerder gegeven opdrachten om alleen de mapgroottes van de bovenliggende mappen te krijgen.

7] Haal alle subdirectory-mapformaten op met behulp van het PowerShell-script

Laten we nu, om het ingewikkelder te maken, aannemen dat u de grootte van elke submap in een map moet weten. Dat kan ook worden bereikt met behulp van PowerShell. Om alle subdirectory-mapformaten inclusief de grootte van de items in de subdirectories te krijgen en gepresenteerd in een nette tabelindeling, kunt u natuurlijk een PowerShell-script maken en uitvoeren met behulp van de onderstaande code.

$targetfolder='DriveLetter:\'
$dataColl = @()
gci -force $targetfolder -ErrorAction SilentlyContinue |? { $_ -is [io.directoryinfo] } | % {
$len = 0
gci -recurse -force $_.fullname -ErrorAction SilentlyContinue | % { $len += $_.length }
$foldername = $_.fullname
$foldersize= '{0:N2}' -f ($len / 1Gb)
$dataObject = New-Object PSObject
Add-Member -inputObject $dataObject -memberType NoteProperty -name “foldername” -value $foldername
Add-Member -inputObject $dataObject -memberType NoteProperty -name “foldersizeGb” -value $foldersize
$dataColl += $dataObject
}
$dataColl | Out-GridView -Title “Size of all subdirectories in DriveLetter drive”

Vervang de tijdelijke aanduiding DriveLetter in de bovenstaande code en zorg ervoor dat u PowerShell-scriptuitvoering inschakelt.

Dat is het!

Is er een manier om de grootte van een map in Windows te zien?

De conventionele manier om de mapgrootte te controleren, is door Verkenner te openen en met de rechtermuisknop te klikken op het bestand, de map of het station waarvan u de grootte wilt zien. Selecteer Eigenschappen in het menu dat verschijnt en u ziet de totale bestands-/schijfgrootte. De niet-conventionele manier om dezelfde taak uit te voeren, is door PowerShell te gebruiken, zoals we in dit bericht hierboven hebben aangetoond.

Wat is de DOS-opdracht om mappen en formaten weer te geven?

De diropdracht geeft informatie weer over bestanden en mappen en hoeveel schijfruimte beschikbaar is. Standaard geeft de opdracht de naam, grootte en laatste wijzigingstijd van elk bestand in de huidige map weer.

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *