it-swarm.com.de

Wie kann ich die Größe eines Ordners über die Windows-Befehlszeile überprüfen?

Ich möchte die Windows-Befehlszeile verwenden, um die Größe aller Dateien in einem Ordner und einem Unterordner zu berechnen. Normalerweise mache ich das, indem ich mit der rechten Maustaste auf den Ordner klicke und auf "Eigenschaften" klicke, aber ich möchte es in der Befehlszeile tun können.

Welchen Befehl kann ich verwenden?

30
user1605665

Sie sollten dir /a/s verwenden, damit alle Dateien, einschließlich Systemdateien und versteckter Dateien, darin enthalten sind. Dadurch erhalten Sie die gewünschte Gesamtgröße.

30
RockPaperLizard

Sie können PowerShell verwenden!

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

Dies durchläuft das gesamte aktuelle Verzeichnis (wobei Verzeichnisse, die nicht eingegeben werden können, ignoriert werden) und summiert die Größe jeder Datei. Dann wird die Gesamtgröße in Bytes ausgegeben.

Kompakter Einzeiler:

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

Auf meinem Computer scheint dies etwas schneller zu sein als ein dir /s /a, da nicht alle Objektinformationen auf dem Bildschirm gedruckt werden.

So führen Sie es von einer normalen Eingabeaufforderung aus:

powershell -command "$totalsize=[long]0;gci -File -r -fo -ea Silent|%{$totalsize+=$_.Length};$totalsize"
9
Ben N

In DOS oder der Windows-Befehlszeile ist kein solcher Befehl integriert. Unter Linux gibt es das du (D isk U Weiser) Befehl.

Die Sysinternals-Tools von Microsoft verfügen über ein Tool, das in etwa du unter Linux entspricht. Es wird auch du genannt. ;)

6
Daniel B

Die Ordnergröße kann mit folgendem Batch-Skript berechnet werden:

@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
no73

Sie können weiterhin das Befehlszeilendienstprogramm diruse.exe aus dem Windows 2000 Resource Kit verwenden, das hier verfügbar ist:

https://support.Microsoft.com/en-us/kb/927229

Es funktioniert problemlos unter Windows 8.1.

2
RockHead

dir /s Listet die Größe aller Dateien und die Dateien in allen Unterordnern auf

1
Keltari

Öffnen Sie einfach die Power-Shell und geben Sie einen du -sh <directory> ein. Sie müssen keine Drittanbieter- oder Sys-Interna installieren. In Power-Shell können Sie einige einfache Linux-ähnliche Befehle wie ls oder du ausführen. Einige der Schalter funktionieren nicht wie ls -alt wird fehlerhaft sein, da Powershell nicht weiß, was das -alt ist.

0
tmac

Der Befehl "dir" gibt die Dateigröße, das Datum und die Uhrzeit der letzten Änderung des aktuellen Verzeichnisses an. Versuchen Sie zunächst, in das Verzeichnis zu wechseln, dessen Größe Sie mit dem Befehl cd ermitteln möchten, und verwenden Sie dann den Befehl dir.

C:\>dir 

Listet die Dateigröße, das Datum und die Uhrzeit der letzten Änderung aller Dateien und Verzeichnisse in dem Verzeichnis, in dem Sie sich gerade befinden, in alphabetischer Reihenfolge auf.

0
vembutech

Mir ist klar, dass diese Frage für die Dateigrößenanalyse mit CMD line gestellt wurde. Wenn Sie jedoch bereit sind, PowerQuery (Excel add-in, versions 2010+) zu verwenden, können Sie eine überzeugende Analyse der Dateigröße erstellen.

Das folgende Skript kann in eine leere Abfrage eingefügt werden. Sie müssen lediglich einen Parameter mit dem Namen "paramRootFolderSearch" hinzufügen und dann Ihren Wert hinzufügen, z. B. "C:\Users\bl0040\Dropbox \". Ich habe dies als Richtlinie verwendet: MSSQLTips: Abrufen der Dateigröße aus dem Dateisystem mit Power Query .

Diese Abfrage lieferte die Daten für die Erstellung einer Pivot-Tabelle ([Folder Root]> [Folder Parent (1-2)], [Name]), und ich konnte einige Dateien identifizieren, die ich löschen konnte, wodurch viel Speicherplatz in meinem Verzeichnis frei wurde.

Hier ist das M-Skript für 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)"

Ordnerdatei Sizes_xlsx.png

enter image description here

Ordnerdatei Sizes_xlsx2.png

enter image description here