Comment trouver la taille d'un dossier à l'aide de Powershell?

23

Je veux pouvoir voir la taille d'un dossier (tout le contenu, y compris les sous-dossiers et leur contenu). Je ne trouve pas de commande powershell pour le faire, mais je ne veux pas avoir à ouvrir l'explorateur Windows à chaque fois que je veux connaître la taille. Existe-t-il un moyen simple d'accomplir cela depuis Powershell?

Jacob Smart
la source

Réponses:

29

Je suis à peu près sûr d'avoir obtenu cela d'une astuce Powershell du jour; Je ne m'en souviens pas avec certitude, mais je l'utilise depuis longtemps et cela a été très utile.

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

Modifier: pour le rendre plus facile à utiliser (pour que vous n'ayez pas à vous souvenir et à taper tout cela à chaque fois), vous pouvez l'ajouter à votre profil en tant que fonction, comme ceci:

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

Et puis utilisez-le comme n'importe quelle commande:

Get-size C:\users\administrator
Darian Everett
la source
1
Je suis curieux, comment ajouter ceci à un profil PowerShell? Voulez-vous parler de dot sourcing ? (note latérale: le code peut être formaté en ajoutant 4 espaces vides au début)
nixda
2
Vous pouvez . sourcez votre profil si vous avez apporté des modifications et ne souhaitez pas redémarrer votre session PS, mais il se charge automatiquement chaque fois que vous démarrez Powershell, donc vous ne le feriez généralement pas. Pour créer votre profil pour la première fois, procédez comme suit: ni $ profile -type f -fo Ensuite, vous pouvez ouvrir et modifier votre profil. Pour trouver où il se trouve, tapez simplement $ profile dans le shell et le chemin sera affiché. Ensuite, toutes les fonctions que vous ajoutez, comme celle ci-dessus, sont disponibles telles qu'elles sont intégrées. Merci pour la pointe de formatage du code également
Darian Everett
1
+1 Whoa ne connaissait pas cette astuce. Fascinant :)
nixda
1
qu'est-ce que ça {0:N2}fait?
soandos
1
Formatage. Le zéro est l'espace réservé, le N2 signifie que c'est un nombre avec deux décimales.
Darian Everett
9

C'est sur le site de Microsoft Technet ici

contribution:

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

sortie:

Count    : 58
Average  :
Sum      : 1244611
Maximum  :
Minimum  :
Property : length
50-3
la source
1
Cela peut souvent être assez loin, car vous devez vérifier récursivement si le dossier contient des sous-dossiers. De plus, quelle est cette mesure, les bits?
Austin T French
Corrigez ses bits - j'ai également oublié d'inclure le commutateur récursif dans lequel je n'ai pas modifié - notez également que je publiais principalement pour fournir l'article technet sur l'exécution de ces recherches trouvé via google (taille du dossier powershell) afin que OP puisse avoir une compréhension complète de la commandes utilisées non seulement la réponse
50-3
Merci pour les mises à jour, c'est un meilleur ajustement maintenant, je pense pour le format Q&A.
Austin T French