Come posso elencare le directory e le loro dimensioni nel prompt dei comandi?


13

Mi piacerebbe vedere le dimensioni delle sottocartelle in una cartella, simile a Linux du -sh comando. Come posso elencare le directory e le loro dimensioni nel prompt dei comandi?


PS Ho trovato utile anche questo piccolo software gratuito windirstat.info
giorgio79


Grazie per la segnalazione du -sh - Io uso cmder su Windows e ha funzionato bene.
jbaums

Risposte:


16

Prova il Uso del disco utilità da Sysinternals. In particolare, du -l 1 dovrebbe mostrare la dimensione di ciascuna sottodirectory della directory corrente. Per ulteriori informazioni, eseguire du senza parametri.


Se PowerShell è OK, quindi provare quanto segue:

Get-ChildItem |
Where-Object { $_.PSIsContainer } |
ForEach-Object {
  $_.Name + ": " + (
    Get-ChildItem $_ -Recurse |
    Measure-Object Length -Sum -ErrorAction SilentlyContinue
  ).Sum
}

Le dimensioni sono in byte. Per formattarli in un'unità più grande come MB, provare quanto segue (condensato su una riga):

Get-ChildItem | Where-Object { $_.PSIsContainer } | ForEach-Object { $_.Name + ": " + "{0:N2}" -f ((Get-ChildItem $_ -Recurse | Measure-Object Length -Sum -ErrorAction SilentlyContinue).Sum / 1MB) + " MB" }

Per ulteriori informazioni, vedere questo articolo su Technet .

Se vuoi una formattazione più flessibile delle dimensioni (scegliendo kB / MB / GB / etc in base alle dimensioni effettive), vedi questa domanda e le sue risposte .


Non penso sia possibile fare ciò che vuoi dalla normale riga di comando e con pochi semplici comandi. Vedere questo script come esempio (non lo copierò qui perché non credo che valga la pena perseguire questo approccio, a meno che PowerShell non sia disponibile e le utilità di terze parti non siano accettabili).


Sembra buono. Aspetterò un po 'per vedere se c'è un modo nativo per farlo nel prompt dei comandi :)
giorgio79

@ giorgio79 Vedi risposta aggiornata. È eseguibile in modo nativo nel prompt dei comandi, ma raccomanderei l'utilizzo del disco o l'uso di PowerShell.
Indrek

0

Non ho esperienza con du in Linux. Ma in Windows io uso dir /s per elencare tutte le cartelle e sottocartelle insieme alle dimensioni dei file.


1
Il /S switch non mostra le dimensioni delle directory, semplicemente fa in modo che il comando ricorsivi in ​​modo ricorsivo attraverso tutte le sottodirectory.
Indrek

3
Guarda attentamente, mostra anche la dimensione di ogni cartella. Anche se non è molto leggibile.
Ankit

Ah si, capisco cosa intendi: sotto l'elenco dei file di ogni sottodirectory mostra la dimensione totale di tutti i file in quella directory. Come dici tu, non è davvero facile da leggere, però, e le dimensioni non sono mostrate in modo ricorsivo.
Indrek
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.