Comment puis-je répertorier les répertoires et leurs tailles dans l'invite de commande?

15

Je voudrais voir la taille des sous-dossiers dans un dossier, similaire à la du -shcommande linux . Comment puis-je répertorier les répertoires et leurs tailles dans l'invite de commande?

giorgio79
la source
PS J'ai trouvé ce petit logiciel gratuit utile aussi windirstat.info
giorgio79
Merci d'avoir souligné du -sh- j'utilise cmder sur Windows et cela a bien fonctionné.
jbaums

Réponses:

19

Essayez l' utilitaire d' utilisation de disque de Sysinternals. Plus précisément, du -l 1doit afficher la taille de chaque sous-répertoire du répertoire en cours. Pour plus d'informations, exécutez dusans aucun paramètre.


Si PowerShell est OK, essayez ce qui suit:

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

Les tailles sont en octets. Pour les formater dans une unité plus grande comme MB, essayez ce qui suit (condensé en une seule ligne):

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

Pour plus d'informations, consultez cet article sur Technet .

Si vous souhaitez un formatage plus flexible des tailles (en choisissant kB / MB / GB / etc en fonction de la taille réelle), consultez cette question et ses réponses .


Je ne pense pas qu'il soit possible de faire ce que vous voulez à partir de la ligne de commande standard et avec seulement quelques commandes simples. Voyez ce script à titre d'exemple (je ne vais pas le copier ici car je ne pense pas que cette approche vaille la peine d'être poursuivie, à moins que PowerShell ne soit pas disponible et que les utilitaires tiers ne soient pas acceptables).

Indrek
la source
Cela semble bon. Attendra un peu pour voir s'il existe une façon native de le faire dans l'invite de commande :)
giorgio79
@ giorgio79 Voir la réponse mise à jour. C'est faisable nativement dans l'invite de commande, mais je recommanderais l'utilisation du disque ou l'utilisation de PowerShell.
Indrek
0

Je n'ai aucune expérience avec duLinux. Mais dans Windows, j'utilise dir /spour répertorier tous les dossiers et sous-dossiers ainsi que la taille des fichiers.

Ankit
la source
1
Le /Scommutateur n'affiche pas la taille des répertoires, il fait simplement passer la commande récursivement dans tous les sous-répertoires.
Indrek
3
Regardez attentivement, il montre également la taille de chaque dossier. Bien que ce ne soit pas très lisible par l'homme.
Ankit
Ah oui, je vois ce que vous voulez dire - sous la liste des fichiers de chaque sous-répertoire, il montre la taille totale de tous les fichiers de ce répertoire. Comme vous le dites, ce n'est pas vraiment facile à lire, et les tailles ne sont pas affichées de manière récursive.
Indrek