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 18286 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 17 décembre 2024 - 9 oct. 2022 à 12:23
brucine Messages postés 18286 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 17 décembre 2024 - 9 oct. 2022 à 12:23
A voir également:
- Batch : Récupère la taille des différents dossiers
- Fichier batch - Guide
- Batch renommer une partie du nom de plusieurs fichiers - Guide
- Batch net use - Forum Réseau
- Color batch - Forum Autoit / batch
- Script batch utile ✓ - Forum Programmation
1 réponse
barnabe0057
Messages postés
14454
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
30 novembre 2024
4 918
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