Come posso trovare la dimensione di una cartella usando Powershell?


23

Voglio essere in grado di vedere quanto è grande una cartella (tutti i contenuti, comprese le sottocartelle e il loro contenuto). Non riesco a trovare un comando PowerShell per farlo, ma non voglio aprire Windows Explorer ogni volta che voglio conoscere le dimensioni. Esiste un modo semplice per ottenere ciò dall'interno di Powershell?

Risposte:


29

Abbastanza sicuro di averlo preso da un suggerimento del giorno Powershell; non ricordo per certo, ma lo uso da molto tempo ed è stato molto utile.

"{0:N2}" -f ((Get-ChildItem -path C:\InsertPathHere -recurse | Measure-Object -property length -sum ).sum /1MB) + " MB"

Modifica: per renderlo più facile da usare (in modo da non dover ricordare e digitare ogni volta tutto questo oggetto) puoi aggiungerlo al tuo profilo come una funzione, in questo modo:

function Get-Size
{
 param([string]$pth)
 "{0:n2}" -f ((gci -path $pth -recurse | measure-object -property length -sum).sum /1mb) + " mb"
}

E poi usalo come qualsiasi comando:

Get-size C:\users\administrator

1
Sono curioso, come posso aggiungerlo a un profilo PowerShell? Intendi dot sourcing ? (nota a
margine

2
Puoi . fonte il tuo profilo se hai apportato modifiche e non vuoi riavviare la sessione PS, ma si carica automaticamente ogni volta che avvii Powershell, quindi generalmente non lo faresti. Per creare il tuo profilo per la prima volta, procedi come segue: ni $ profile -type f -fo Quindi puoi aprire e modificare il tuo profilo. Per trovare dove si trova, basta digitare $ profile nella shell e verrà visualizzato il percorso. Quindi qualsiasi funzione che aggiungi, come quella sopra, è disponibile come incorporata. Grazie anche per il suggerimento sulla formattazione del codice
Darian Everett

1
+1 Whoa non conosceva quel trucco. Affascinante :)
nixda,

1
ciò che {0:N2}fare?
soandos,

1
Formattazione. Lo zero è il segnaposto, N2 significa che è un numero con due cifre decimali.
Darian Everett,

9

È sul sito Microsoft Technet qui

ingresso:

Get-ChildItem C:\Scripts -recurse | Measure-Object -property length -sum

produzione:

Count    : 58
Average  :
Sum      : 1244611
Maximum  :
Minimum  :
Property : length

1
Questo può essere spesso piuttosto lontano, poiché è necessario controllare ricorsivamente se la cartella ha sottocartelle. Inoltre, cos'è questa misura, bit?
Austin T, francese,

Correggere i bit - ho anche dimenticato di includere l'interruttore di recurse che non ho modificato in - nota anche che stavo postando principalmente per fornire l'articolo technet sull'esecuzione di questa ricerca trovata tramite google (dimensione della cartella PowerShell) in modo che OP potesse ottenere una piena comprensione del i comandi utilizzavano non solo la risposta
50-3

Grazie per gli aggiornamenti, è una soluzione migliore ora penso per il formato domande e risposte.
Austin T, francese,
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.