Batch : Récupère la taille des différents dossiers
Fermé
BenjaminA2mains
Messages postés
43
Date d'inscription
dimanche 1 août 2021
Statut
Membre
Dernière intervention
5 février 2023
-
Modifié le 8 oct. 2022 à 22:30
brucine Messages postés 14341 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 28 avril 2024 - 9 oct. 2022 à 12:23
brucine Messages postés 14341 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 28 avril 2024 - 9 oct. 2022 à 12:23
A voir également:
- Batch : Récupère la taille des différents dossiers
- Fichier batch - Guide
- Msgbox batch ✓ - Forum Autoit / batch
- Net use batch - Forum Réseau
- Extension batch - Forum Windows
- Batch color - Forum Autoit / batch
1 réponse
barnabe0057
Messages postés
14440
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
19 avril 2024
4 908
Modifié le 9 oct. 2022 à 02:24
Modifié le 9 oct. 2022 à 02:24
Bonjour,
Pour résoudre le problème, je dirais qu'il faut "retarder" la variable size comme ceci :
setlocal enabledelayedexpansion FOR /D %%d IN (*) DO ( FOR /R "." %%s IN (*) DO ( SET /A size+=%%~zs ) SET doss=%%~nd ) ECHO !doss! : !size! o SET /A size_ko=!size!/1024 ECHO !doss! : ~%size_ko% Ko SET /A size_mo=%size_ko%/1024 ECHO !doss! : ~%size_mo% Mo SET /A size_go=%size_mo%/1024 ECHO !doss! : ~%size_go% Go
-
Tu pourrais aussi simplifier le script comme ceci :
setlocal enabledelayedexpansion FOR /R "." %%s IN (*) DO SET /A size+=%%~zs ECHO !CD! : %size% o SET /A size_ko=%size%/1024 ECHO !CD! : ~%size_ko% Ko SET /A size_mo=%size_ko%/1024 ECHO !CD! : ~%size_mo% Mo SET /A size_go=%size_mo%/1024 ECHO !CD! : ~%size_go% Go
9 oct. 2022 à 07:27
Bonjour,
Ne pas oublier qu'en cas d'un dossier de plus de 2 Go on va se faire planter par la limite de calcul à 2^31.
On doit alors avant le calcul limiter l'affichage de la taille en octets à 9 chiffres:
SET/A "SIZE9=%SIZE:~0,9%"
Si je veux pinailler à l'extrême et afficher le nombre avec des décimales, il va falloir en outre que je teste la longueur de la chaîne en octets pour appliquer le bon format de sortie après division selon par exemple qu'on est dans la tranche 1 à 10, 10 à 99 ou 100 à 999 Mo.
9 oct. 2022 à 12:23
Pour ceux qui ne sont pas d'accord, essayez au hasard avec un dossier de 5,50 Go:
que je n'aurai a fortiori aucun moyen de diviser par 1024