Taille partition ok en ligne de commandes mais pas en batch
Fermé
brucine
Messages postés
17867
Date d'inscription
lundi 22 février 2021
Statut
Membre
Dernière intervention
25 novembre 2024
-
30 juil. 2021 à 16:27
brucine Messages postés 17867 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 25 novembre 2024 - 6 août 2021 à 17:48
brucine Messages postés 17867 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 25 novembre 2024 - 6 août 2021 à 17:48
A voir également:
- Taille partition ok en ligne de commandes mais pas en batch
- Site de vente en ligne particulier - Guide
- Comment réduire la taille d'un fichier - Guide
- Partage de photos en ligne - Guide
- Invite de commande - Guide
- Aller à la ligne excel - Guide
1 réponse
barnabe0057
Messages postés
14453
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
24 novembre 2024
4 917
Modifié le 30 juil. 2021 à 17:31
Modifié le 30 juil. 2021 à 17:31
Salut brucine,
Dans ta première boucle FOR, pour corriger le problème il suffit d'utiliser : comme délimiteur
Dans ta dernière boucle FOR tu peux rajouter un FINDSTR . ou bien FINDSTR /V /R "^$" comme ceci :
Dans ta première boucle FOR, pour corriger le problème il suffit d'utiliser : comme délimiteur
Dans ta dernière boucle FOR tu peux rajouter un FINDSTR . ou bien FINDSTR /V /R "^$" comme ceci :
FOR /F "skip=1 tokens=1 delims=" %%C in ('wmic /NameSpace:\\root\Microsoft\Windows\Storage Path MSFT_PhysicalDisk Where "MediaType=3" Get Model ^| FINDSTR .') do echo.%%C
30 juil. 2021 à 19:06
Le premier, je m'étais posé la question quant à savoir si les points faisaient ou non partie de la donnée (lecteur c:), puis ça m'était sorti de l'idée.
Quant au deuxième, en effet, je n'avais pas trouvé la bonne syntaxe FINDSTR.
Il ne me reste plus qu'à faire mes comptes d'apothicaire pour convertir mes octets en Go (RAM) voire plus gros (disques).
Merci beaucoup.
Modifié le 30 juil. 2021 à 19:58
Tu peux faire des tests en modifiant la variable valeur
30 juil. 2021 à 21:06
Il y a aussi probablement une question de compatibilité bien que je sois malhonnête puisque utilisant wmic (absent pour XP Home) et fsutil (droits administrateur).
De toute façon, c'est la vieillerie, ce soir, tout va mal; j'ai depuis longtemps un batch éprouvé qui transforme n'importe quelle valeur d'octets depuis quelques dizaines jusqu'à plusieurs dizaines de To (le problème, c'est le raccourci avec le tilde avec le minimum de perte dans chaque gamme, puisqu'on se fait jeter dès que le chiffre dépasse 2 EXP 32).
Et ce soir, s'agissant d'une quantité négligeable équivalente à quelques Go (RAM Disponible), je me fais jeter parce que le truc veut bien diviser par 1024 mais pas multiplier par 1000 (pour garder la précision en enlevant les chiffres par la droite, et même si je pinaille, puisque l'on aura beau en enlever 6 que l'on n'aura perdu que epsilon).
Demain, il fera jour...
30 juil. 2021 à 21:43
Je t'épargne à cette heure les considérations logarithmiques, un calcul batch est planté dès 10 chiffres d'octets correspondant à autour de 2 Go.
Modifié le 1 août 2021 à 13:09
Nouvelles du front. Pour la réduction des chiffres, c'était quand même assez exotique.
La taille en octets de la partition est bien rendue via wmic à 12 chiffres en-dessous de 1 To, soit 3 de trop, mais pour réduire à 9, il faut saisir:
Vive l'arithmétique...
Pas mieux concernant la RAM disponible que cette fois-ci systeminfo rend par exemple 4 780 (l'espace n'est pas une coquille), et il faut donc à nouveau tricher pour calculer:
Moyennant quoi le résultat obtenu est bon à 2 problèmes cosmétiques près:
L 'opérateur manquant, je ne sais pas puisque tout marche, il faudra que je prenne un moment pour isoler chaque commande pour voir d'où ça vient.
Aucune instance disponible est rendu par:
suivi de la même commande où MediaType=3, puisqu'il n'y a pas de SSD.
La commande ne produit pas de ERRORLEVEL (ou je ne sais pas où aller le chercher) de sorte à me débarrasser de ce message via une conditionnelle.
On peut peut-être tricher en faisant une conditionnelle sur la valeur de Mediatype, qui vaut forcément 3, 4, ou les deux, mais je ne sais pas comment:
Enfin, oui, Powershell, mais pour moi, c'est juste un mot ou presque:
On pourrait jouer ici sur les mots SSD ou HDD:
Ou là, l'inexistence du SSD ne retourne pas un message d'erreur mais un simple retour à la ligne:
A cela près que je n'ai aucune idée de comment retourner le résultat dans une ou deux selon le cas variables de mon batch pour l'y afficher.
Je te saoule encore, merci si tu as le temps et l'envie de t'occuper de la question.