56 votes

Comment puis-je vérifier la taille d'un dossier à partir de la ligne de commande Windows ?

Je veux utiliser la ligne de commande Windows pour calculer la taille de tous les fichiers d'un dossier et d'un sous-dossier. Normalement, je le ferais en cliquant avec le bouton droit de la souris sur le dossier et en cliquant sur "Propriétés", mais je veux pouvoir le faire en ligne de commande.

Quelle commande puis-je utiliser ?

50voto

Vous voudrez utiliser dir /a/s afin d'inclure tous les fichiers, y compris les fichiers système et les fichiers cachés. Vous obtiendrez ainsi la taille totale souhaitée.

26voto

Ben N Points 38070

Vous pouvez utiliser PowerShell !

$totalsize = [long]0
Get-ChildItem -File -Recurse -Force -ErrorAction SilentlyContinue | % {$totalsize += $_.Length}
$totalsize

Elle parcourt l'ensemble du répertoire courant (en ignorant les répertoires qui ne peuvent pas être saisis) et additionne les tailles de chaque fichier. Puis elle imprime la taille totale en octets.

Une phrase compacte :

$totalsize=[long]0;gci -File -r -fo -ea Silent|%{$totalsize+=$_.Length};$totalsize

Sur ma machine, cela semble légèrement plus rapide qu'un dir /s /a puisqu'il n'imprime pas les informations de chaque objet à l'écran.

Pour l'exécuter à partir d'une invite de commande normale :

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

10voto

Daniel B Points 52129

Il n'existe pas de commande de ce type intégrée à la ligne de commande DOS ou Windows. Sous Linux, il y a le du ( D isk U sage) commande.

La ligne d'outils Sysinternals de Microsoft dispose d'un outil qui est à peu près équivalent à du sur Linux. On l'appelle aussi du . ;)

3voto

RockHead Points 31

Vous pouvez toujours utiliser l'utilitaire de ligne de commande diruse.exe à partir du kit de ressources Windows 2000 disponible ici :

https://support.microsoft.com/en-us/kb/927229

Il fonctionne sous Windows 8.1 sans aucun problème.

2voto

PaulTsai Points 115

La taille du dossier peut être calculée avec le lot suivant script :

@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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X