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 17840 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 23 novembre 2024 - 9 oct. 2022 à 12:23
brucine Messages postés 17840 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 23 novembre 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
- Script .bat pour renommer des fichiers ✓ - Forum Autoit / batch
- Script batch utile ✓ - Forum Programmation
- Input batch - Forum Autoit / batch
1 réponse
barnabe0057
Messages postés
14452
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
3 août 2024
4 917
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