Fsutil retour espace disque

brucine Messages postés 18331 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 21 décembre 2024 - 12 mars 2024 à 09:23
brucine Messages postés 18331 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 21 décembre 2024 - 15 mars 2024 à 13:03

Bonjour,
 

L'explorateur Windows rend les espaces disque non pas à une décimale mais à 3 chiffres significatifs (il n'y a plus de décimale au-dessus de 100 Go).

Si je veux reproduire les espaces disques dans un script à une décimale (et que là j'aurai toujours quelle que soit la taille), je vais passer par fsutil; la synthèse non pas de l'affichage réel mais de ce qui m'y intéresse avant purge du texte nombre total, du nombre d'octets, des parenthèses et réintégration de la lettre de lecteur me retourne:

fsutil volume diskfree C: Nombre total d'octets libres:  58 443 096 064 (54,4 Go)
fsutil volume diskfree F: Nombre total d'octets libres: 18 529 685 504 (17,3 Go)
fsutil volume diskfree G: Nombre total d'octets libres:  74 499 891 200 ( 69,4 Go)
fsutil volume diskfree H: Nombre total d'octets libres:  23 917 752 320 ( 22,3 Go)
fsutil volume diskfree M: Nombre total d'octets libres: 331 064 954 880 (308,3 Go)
fsutil volume diskfree N: Nombre total d'octets libres: 63 671 588 864 ( 59,3 Go)

Le script fonctionne parfaitement mais il est disgracieux à l'affichage du fait du décalage des valeurs:

Il est logique dans l'existence d'un chiffre supplémentaire à gauche dans M: par rapport à C: qu'on pourrait traiter facilement en testant l'existence d'un caractère non numérique à gauche (il n'est pas considéré comme un espace), mais pas de manière semblant aléatoire (ne dépendant pas de la taille de la partition) dans l'expression du nombre d'octets ou de celui de Go entre parenthèses.

Cette situation existe au départ de fsutil volume diskfree à l'invite de commande avant même qu'on en ait traité la sortie en séparant les morceaux dans une boucle FOR.

Ce n'est donc que purement esthétique, mais si quelqu'un voit un moyen d'y remédier?

Merci.

A voir également:

1 réponse

T3chN0g3n Messages postés 5103 Date d'inscription samedi 16 février 2019 Statut Membre Dernière intervention 18 décembre 2024 1 139
12 mars 2024 à 10:01

Salut,

En mettant des tabulations, comme ça semble être le cas sur les autres lignes ?

Cdlt.

0
brucine Messages postés 18331 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 21 décembre 2024 2 714
12 mars 2024 à 18:04

Bonjour,

Il n'y a pas à proprement parler de tabulations, les titres sont alignés d'un côté, les variables correspondantes sont alignées de l'autre et cela suffit.

Je peux toujours déplacer les variables de taille de disque vers la droite ou où je veux que cela ne changera pas le non alignement de ces chiffres qui ne correspondent pas à une variable par disque mais à une seule variable résultat d'une boucle FOR.

fsutil renvoie pour chaque disque entre autres et comme illustré dans mon premier message une ligne espace total et une ligne espace disque.

Le but est de récupérer dans un fichier texte provisoire un ensemble de lignes comportant pour chaque disque la lettre de lecteur et ce qui est entre parenthèses en libre et total.

En fait de tabulations, il faut donc que je mette un délimiteur dans la commande FOR, je n'ai le choix qu'entre l'espace, les deux points et la parenthèse ouvrante.

On obtient quelque chose (dans le cas de figure j'ai volontairement ajouté à la sortie des parenthèses ouvrantes pour pouvoir trier après):
 

C:(  58 436 579 328 (54,4 Go)( 105 289 609 216 (98,1 Go)
F:( 18 529 685 504 (17,3 Go)( 20 996 681 728 (19,6 Go)
G:(  74 499 891 200 ( 69,4 Go)( 191 889 403 904 (178,7 Go)
H:(  23 917 752 320 ( 22,3 Go)( 192 937 979 904 (179,7 Go)
M:( 331 064 954 880 (308,3 Go)( 500 105 216 000 (465,8 Go)
N:( 63 671 588 864 ( 59,3 Go)( 63 860 024 832 ( 59,5 Go)

L e nombre d'octets n'est pas séparé comme on en a l'illusion sur des espaces (je ne peux donc pas séparer nombre d'octets et total en Go en comptant le nombre d'espaces), ne me laissant le choix que de la parenthèse ouvrante.

Outre le fait que les chaînes peuvent ne pas avoir la même longueur (54,4 Go, 308,3, et pourquoi pas 1250,1), on se fait planter par l'espace aléatoire (celui-là est réel) par exemple devant 69,4 mais pas devant 54,4.

à moins que tu aies une meilleure idée, la parade consisterait à pouvoir faire reconnaître directement au script ce qui est entre parenthèses et d'y tester le nombre de chiffres et de caractères non numériques (espaces) devant la virgule tout en restant dans de l'écriture raisonnable (parce que sinon, j'ai déjà un script qui fonctionne et sait rendre depuis les octets la taille de n'importe quel dossier ou lecteur du Mo au To à 2 décimales, mais ça fait des kilomètres de code à multiplier ici par 2 valeurs et le nombre de lecteurs là où "l'élégance" du script fsutil est qu'il est assez court).

0
brucine Messages postés 18331 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 21 décembre 2024 2 714 > brucine Messages postés 18331 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 21 décembre 2024
12 mars 2024 à 21:54

Eurêka.
 

ça fait quand même quelques lignes de code, je zappe donc ici, je mettrai le script en ligne sur cjoint si quelqu'un est intéressé.

Sur le principe, il faut que le code enlève dans les deux variables concernées s'il existe l'espace superflu à gauche et l'espace plus "Go" à droite; on multiplie ensuite les variables par 10 qui paradoxalement dans ces conditions ne fait qu'arrondir le résultat sur le mode 54,5*10=54 (sinon Dos va nous planter parce qu'on veut calculer sur des décimales), on compare le résultat obtenu à 100 (c'est alors qu'il y a 3 chiffres) et on ajoute un espace devant dans le cas contraire.

On finit en rajoutant les "Go" à l'affichage pour des raisons cosmétiques.

0
T3chN0g3n Messages postés 5103 Date d'inscription samedi 16 février 2019 Statut Membre Dernière intervention 18 décembre 2024 1 139 > brucine Messages postés 18331 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 21 décembre 2024
13 mars 2024 à 09:32

Salut, je veux bien y jeter un oeil pour ma culturation personnelle =)

0
brucine Messages postés 18331 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 21 décembre 2024 2 714 > T3chN0g3n Messages postés 5103 Date d'inscription samedi 16 février 2019 Statut Membre Dernière intervention 18 décembre 2024
13 mars 2024 à 11:04

Bonjour,

Pour ta peine, tu auras tout le script d'infos système en vrac.

Il ne fonctionne que sous Windows et pas Windows 9X, il échoue à détecter plus d'un SSD et d'un HDD faute que je l'ai écrit pour ça, à détecter correctement les versions Windows antérieures à anHn (même remarque), à détecter plus de 100 Go de RAM (mais bon...) si on n'y rajoute pas le test correspondant, idem pour des espaces de partition supérieurs à 1 To (ou inférieurs à 1 Go) .

https://www.cjoint.com/c/NCnkdZJACjF

0
quentin2121 Messages postés 8992 Date d'inscription lundi 24 mai 2010 Statut Membre Dernière intervention 20 décembre 2024 1 244 > brucine Messages postés 18331 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 21 décembre 2024
13 mars 2024 à 12:48

Bonjour,

Bien ton script : qu'est ce qu'il faut changer à part C : nom du pc ?

0