2014-11-07 04:12:42 +0000 2014-11-07 04:12:42 +0000
39
39
Advertisement

Hoe kan ik de grootte van een map controleren vanaf de Windows commandoregel?

Advertisement

Ik wil de Windows commandoregel gebruiken om de grootte van alle bestanden in een map en submap te berekenen. Normaal gesproken zou ik dit doen door met de rechtermuisknop op de map te klikken en op “Eigenschappen” te klikken, maar ik wil het op de opdrachtregel kunnen doen.

Welk commando kan ik gebruiken?

Advertisement
Advertisement

Antwoorden (10)

35
35
35
2014-11-07 06:34:25 +0000

U zult dir /a/s willen gebruiken zodat het elk bestand bevat, inclusief systeem- en verborgen bestanden. Dit geeft u de totale grootte die u wenst.

14
14
14
2016-12-07 17:10:59 +0000

U kunt PowerShell! $totalsize = [long]0 Get-ChildItem -File -Recurse -Force -ErrorAction SilentlyContinue | % {$totalsize += $_.Length} $totalsize

gebruiken Dit loopt terug door de hele huidige directory (waarbij directories die niet kunnen worden ingevoerd worden genegeerd) en somt de grootte van elk bestand op. Vervolgens print het de totale grootte in bytes.

Compacted one-liner:

$totalsize=[long]0;gci -File -r -fo -ea Silent|%{$totalsize+=$_.Length};$totalsize

Op mijn machine lijkt dit iets sneller dan een dir /s /a, omdat het niet de informatie van elk object op het scherm afdrukt.

Om het uit te voeren vanaf een normale opdrachtprompt:

powershell -command "$totalsize=[long]0;gci -File -r -fo -ea Silent|%{$totalsize+=$_.Length};$totalsize"
7
Advertisement
7
7
2015-03-04 09:35:54 +0000
Advertisement

Er is geen dergelijk commando ingebouwd in DOS of Windows Command Line. Op Linux is er het du ( D isk U sage) commando.

Microsoft’s Sysinternals lijn van tools heeft een tool die ongeveer gelijk is aan du op Linux. Het heet ook du. ](https://technet.microsoft.com/en-us/sysinternals/bb896651.aspx) ;)

2
2
2
2016-01-13 08:21:30 +0000

De grootte van de map kan worden berekend met het volgende batchscript:

@echo off
setlocal enabledelayedexpansion

set size=0
for /f "tokens=*" %%x in ('dir /s /a /b %1') do set /a size+=%%~zx
echo.!size!

endlocal
2
Advertisement
2
2
2016-02-15 12:14:54 +0000
Advertisement

U kunt nog steeds gebruik maken van het hulpprogramma diruse.exe van de Windows 2000 Resource Kit die hier beschikbaar is: https://support.microsoft.com/en-us/kb/927229

Het werkt zonder problemen op Windows 8.1.

1
1
1
2014-11-07 06:24:08 +0000

dir /s Geeft een overzicht van de grootte van alle bestanden en de bestanden in alle submappen.

1
Advertisement
1
1
2019-03-07 22:38:22 +0000
Advertisement

Ik realiseer me dat deze vraag werd gesteld voor de analyse van de bestandsgrootte met behulp van CMD line. Maar als je open staat voor het gebruik van PowerQuery (Excel add-in, versions 2010+) dan kun je een behoorlijk overtuigende bestandsgrootte analyse maken.

Het onderstaande script kan worden geplakt in een blanco query; Het enige wat je moet doen is een parameter toevoegen genaamd “paramRootFolderSearch” en dan je waarde toevoegen, zoals “C:\Users\bl0040Dropbox\”. Ik heb dit als leidraad gebruikt: MSSQLTips: Ophalen van bestandsgroottes uit het bestandssysteem met behulp van Power Query ](https://www.mssqltips.com/sqlservertip/4022/retrieve-file-sizes-from-the-file-system-using-power-query/).

Deze query gaf me de gegevens om een draaitabel ([Folder Root]> [Folder Parent (1-2)], [Name]) te maken, en ik was in staat om een paar bestanden te identificeren die ik kon verwijderen, waardoor er veel ruimte in mijn map werd vrijgemaakt.

Hier is het M-script voor PowerQuery :

let
// Parmameters:
    valueRootFolderSearch = paramRootFolderSearch,
    lenRootFolderSearch = Text.Length(paramRootFolderSearch),
//

    Source = Folder.Files(paramRootFolderSearch),
    #"Removed Other Columns" = Table.RenameColumns(
Table.SelectColumns(Source,{"Name", "Folder Path", "Attributes"})
,{{"Folder Path", "Folder Path Full"}}),
    #"Expanded Attributes" = Table.ExpandRecordColumn(#"Removed Other Columns", "Attributes", {"Content Type", "Kind", "Size"}, {"Content Type", "Kind", "Size"}),
    #"fx_Size(KB)" = Table.AddColumn(#"Expanded Attributes", "Size(KB)", each [Size]/1024),
    #"fx_Size(MB)" = Table.AddColumn(#"fx_Size(KB)", "Size(MB)", each [Size]/1048576),
    #"fx_Size(GB)" = Table.AddColumn(#"fx_Size(MB)", "Size(GB)", each [Size]/1073741824),
    fx_FolderRoot = Table.AddColumn(#"fx_Size(GB)", "Folder Root", each valueRootFolderSearch),
    helper_LenFolderPathFull = Table.AddColumn(fx_FolderRoot, "LenFolderPathFull", each Text.Length([Folder Path Full])),
    fx_FolderDepth = Table.AddColumn(helper_LenFolderPathFull, "Folder Depth", each Text.End([Folder Path Full], [LenFolderPathFull]-lenRootFolderSearch+1)),
    #"helperList_ListFoldersDepth-Top2" = Table.AddColumn(fx_FolderDepth, "tmp_ListFoldersDepth", each List.Skip(
  List.FirstN(
    List.RemoveNulls(
      Text.Split([Folder Depth],"\")
    )
  ,3)
,1)),
    #"ListFoldersDepth-Top2" = Table.TransformColumns(#"helperList_ListFoldersDepth-Top2", 
{"tmp_ListFoldersDepth", each "\" & Text.Combine(List.Transform(_, Text.From), "\") & "\"
, type text}),
    #"Select Needed Columns" = Table.SelectColumns(#"ListFoldersDepth-Top2",{"Name", "Folder Root", "Folder Depth", "tmp_ListFoldersDepth", "Content Type", "Kind", "Size", "Size(KB)", "Size(MB)", "Size(GB)"}),
    #"rename_FoldersParent(1-2)" = Table.RenameColumns(#"Select Needed Columns",{{"tmp_ListFoldersDepth", "Folders Parent (1-2)"}})
in
    #"rename_FoldersParent(1-2)"

Folder File Sizes_xlsx.png

Folder File Sizes_xlsx2.png

1
1
1
2019-12-07 07:30:53 +0000

Microsoft biedt een tool genaamd Disk Usage die een CSV-rapport maakt.

Du (schijfgebruik) rapporteert het schijfruimtegebruik voor de door u opgegeven directory. Standaard wordt de totale grootte van een map en de subdirectories weergegeven.

Hier is hoe het te gebruiken:

Gebruik: du [-c[t]]. [-l | -n | -v] [-u] [-q] Parameterbeschrijving

Waar de opties zijn:

-c Print output as CSV. Use -ct for tab delimiting.
-l Specify subdirectory depth of information (default is all levels).
-n Do not recurse.
-v Show size (in KB) of intermediate directories.
-u Count each instance of a hardlinked file.
-q Quiet (no banner).

De CSV-uitvoer is geformatteerd als:

Pad, CurrentFileCount, CurrentFileSize, FileCount, DirectoryCount, DirectorySize

Hier is de huidige officiële link .

0
Advertisement
0
0
2017-11-30 14:17:53 +0000
Advertisement

Gewoon open power shell en doe een du -sh <directory> geen noodzaak om 3rd party of sys-internals te installeren. Binnen Power-shell kun je een aantal eenvoudige Linux commando’s uitvoeren zoals ls of du commando’s, sommige van de schakelaars zullen niet werken zoals ls -alt zal een fout maken omdat powershell niet weet wat de -alt is…

-2
-2
-2
2014-11-07 05:38:57 +0000

Het “dir”-commando geeft de bestandsgrootte, de laatste wijzigingsdatum en -tijd van de huidige directory aan. Probeer eerst naar de map te gaan waar u de grootte van het cd commando wilt bekijken, gebruik dan het dir commando.

C:\>dir

Geeft de bestandsgrootte, de laatste wijzigingsdatum en -tijd van alle bestanden en mappen in de map waar u zich op dat moment bevindt, in alfabetische volgorde weer.

Advertisement

Verwandte Fragen

3
19
10
28
6
Advertisement
Advertisement