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

Come posso controllare la dimensione di una cartella dalla riga di comando di Windows?

Voglio usare la riga di comando di Windows per calcolare la dimensione di tutti i file in una cartella e sottocartella. Normalmente lo farei facendo clic con il tasto destro del mouse sulla cartella e cliccando su “Proprietà”, ma voglio poterlo fare sulla riga di comando.

Quale comando posso usare?

Risposte (10)

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

Si desidera utilizzare dir /a/s in modo che includa ogni file, compresi i file di sistema e i file nascosti. Questo vi darà la dimensione totale che desiderate.

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

È possibile utilizzare PowerShell!

$totalsize = [long]0
Get-ChildItem -File -Recurse -Force -ErrorAction SilentlyContinue | % {$totalsize += $_.Length}
$totalsize
``` ```
$totalsize=[long]0;gci -File -r -fo -ea Silent|%{$totalsize+=$_.Length};$totalsize

Questo ricorre attraverso l'intera directory corrente (ignorando le directory che non possono essere inserite) e riassume le dimensioni di ogni file. Poi stampa la dimensione totale in byte.

Compattato a una riga:

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


Sulla mia macchina, questo sembra leggermente più veloce di un `dir /s /a`, poiché non stampa le informazioni di ogni oggetto sullo schermo. 


Per eseguirlo da un normale prompt di comandi: 


&001
7
7
7
2015-03-04 09:35:54 +0000

Non esiste un comando di questo tipo integrato in DOS o nella riga di comando di Windows. Su Linux, c'è il comando du ( D isk U sage).

La linea di strumenti Sysinternals di Microsoft ha uno strumento più o meno equivalente a du su Linux. Si chiama anche du. ;)

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

La dimensione della cartella può essere calcolata con il seguente script batch:

@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
2
2
2016-02-15 12:14:54 +0000

È ancora possibile utilizzare l'utilità a riga di comando diruse.exe del Resource Kit di Windows 2000 disponibile qui: https://support.microsoft.com/en-us/kb/927229 &003

Funziona su Windows 8.1 senza problemi.

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

dir /s Elencherà le dimensioni di tutti i file e i file in tutte le sottocartelle

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

Mi rendo conto che questa domanda è stata posta per l'analisi delle dimensioni del file utilizzando CMD line. Ma se si è aperti all'uso di PowerQuery (Excel add-in, versions 2010+) allora si può creare un'analisi delle dimensioni del file piuttosto convincente.

Lo script sottostante può essere incollato in una query vuota; l'unica cosa da fare è aggiungere un parametro chiamato “paramRootFolderSearch” e poi aggiungere il proprio valore, come “C:\ \Users\bl0040\Dropbox\”. Ho usato questo come guida: MSSQLTips: Recupera le dimensioni dei file dal file system usando Power Query .

Questa query mi ha fornito i dati per creare una tabella pivot ([Folder Root]> [Folder Parent (1-2)], [Name]), e sono stato in grado di identificare alcuni file che ho potuto cancellare e che hanno liberato molto spazio nella mia directory.

** Ecco lo script M per 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 offre uno strumento chiamato Disk Usage che crea un rapporto CSV.

Du (uso del disco) riporta l'uso dello spazio su disco per la directory specificata. Per impostazione predefinita, esso ricorre alle directory per mostrare la dimensione totale di una directory e delle sue sottodirectory.

Ecco come usarlo:

Uso: du [-c[t]]. [-l | -n | -v] [-u] [-q] Descrizione dei parametri

Dove le opzioni sono:

-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).

L'uscita CSV è formattata come:

Percorso, CurrentFileCount, CurrentFileSize, FileCount, DirectoryCount, DirectorySize

Ecco il link ufficiale corrente .

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

Basta aprire il guscio di alimentazione e fare un du -sh <directory> non c'è bisogno di installare 3rd party o sys-internals. All'interno di Power-shell è possibile eseguire alcuni semplici comandi di Linux come ls o du comandi, alcuni degli switch non funzioneranno come ls -alt sbaglieranno perché powershell non sa cosa sia l’-alt…

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

Il comando “dir” fornisce la dimensione del file, la data e l'ora dell'ultima modifica della directory corrente. Prima di tutto, provare a spostarsi nella directory che si desidera guardare la dimensione di utilizzo del comando cd, quindi utilizzare il comando dir.

C:\>dir

Elenca la dimensione del file, la data e l'ora dell'ultima modifica di tutti i file e le directory della directory in cui ci si trova attualmente, in ordine alfabetico.