[BATCH] Commande set

Commande set [BATCH] - Shell/Batch - Programmation

Marsh Posté le 08-11-2007 à 15:09:52    

Bonjour à tous,
 
je suis en train de faire un script qui me donne l'espace disque libre et occupé de mon disque dur donc je travaille avec des octets.
Et là le drame, j'ai un problème en voulant faire des calculs sur mes variables qui hébergent l'espace libre ou occupé.
Exemple: je déclare ma variable:

Code :
  1. set /a ESPACE=43322548224


et si je veux faire une soustraction par exemple sur ce chiffre bah je ne peux pas, j'ai zéro comme résultat.......
 
Après quelques tests, je me rends compte que si ma variable n'a que 9 caractères, ca fonctionne.
 
Donc si quelqu'un connait un moyen d'agrandir ma variable, merci à cette personne.
 
 :hello:


---------------
- Feed-back - - Jeu du moment: J’ai un backlog monstre sur Switch - C'est moi Bananecafe
Reply

Marsh Posté le 08-11-2007 à 15:09:52   

Reply

Marsh Posté le 08-11-2007 à 15:26:56    

Code :
  1. set ESPACE=43322548224
  2. set /a ESPACE-=546
  3. echo %ESPACE%

Message cité 1 fois
Message édité par Coolnut le 08-11-2007 à 15:27:05
Reply

Marsh Posté le 08-11-2007 à 15:37:19    

Coolnut a écrit :

Code :
  1. set ESPACE=43322548224
  2. set /a ESPACE-=546
  3. echo %ESPACE%



 
Merci de ta réponse mais je ne comprends pas tout.
 
Voici mon script:

Code :
  1. set PREFIX2=Espace occupe
  2. set ESPACE=43322548224
  3. rem set ESPACE=433225482
  4. rem On récupère l'espace disque libre sur le c: et on fait la différence entre taille totale du disque - espace libre
  5. c:
  6. FOR /F "usebackq tokens=3" %%F IN (`DIR /-C ^| FIND /I "octets libres"`) DO set VALEUR=%%F
  7. echo %VALEUR%
  8. echo %ESPACE%
  9. set ESPACE=%ESPACE%/1024
  10. set VALEUR=%VALEUR%/1024
  11. echo %VALEUR%
  12. echo %ESPACE%
  13. set /a test="%ESPACE%"+"%VALEUR%"
  14. echo %test%


 
la valeur ESPACE est variable mais en dure.
 
Voic ce que me retourne le script:

Code :
  1. 16422043648
  2. 43322548224
  3. 16422043648/1024
  4. 43322548224/1024
  5. 0


 
 :jap:


Message édité par numrobis le 08-11-2007 à 17:51:24

---------------
- Feed-back - - Jeu du moment: J’ai un backlog monstre sur Switch - C'est moi Bananecafe
Reply

Marsh Posté le 09-11-2007 à 07:55:01    

Quand tu calcules :
set /a VAR=....
 
Par ex. :
set /a ESPACE=%ESPACE%/1024
 
Et dans ce cas, faut pas quoter les noms de variables, sinon elles seront considerees comme des chaines de caracteres -> valeur = 0 :
set /a test=%ESPACE%+%VALEUR%

Reply

Marsh Posté le 09-11-2007 à 08:48:10    

wackevat a écrit :

Quand tu calcules :
set /a VAR=....
 
Par ex. :
set /a ESPACE=%ESPACE%/1024
 
Et dans ce cas, faut pas quoter les noms de variables, sinon elles seront considerees comme des chaines de caracteres -> valeur = 0 :
set /a test=%ESPACE%+%VALEUR%


 
Je vais essayer cela, à vrai dire je ne suis pas un pro du batch donc j'essaye divers trucs  ;)  
 
Merci pour ton aide.


---------------
- Feed-back - - Jeu du moment: J’ai un backlog monstre sur Switch - C'est moi Bananecafe
Reply

Marsh Posté le 09-11-2007 à 10:46:20    

wackevat a écrit :

Quand tu calcules :
set /a VAR=....
 
Par ex. :
set /a ESPACE=%ESPACE%/1024
 
Et dans ce cas, faut pas quoter les noms de variables, sinon elles seront considerees comme des chaines de caracteres -> valeur = 0 :
set /a test=%ESPACE%+%VALEUR%


 
Sais tu comment étendre ma variable sur 11 caractères voire plus (ex: 43322548224)
Car sur 11 carac, si je fais "set /a ESPACE=43322548224" il me retourne "-1"


---------------
- Feed-back - - Jeu du moment: J’ai un backlog monstre sur Switch - C'est moi Bananecafe
Reply

Marsh Posté le 10-11-2007 à 23:53:23    

Tiens, lis ca (la réponse):
http://groups.google.com/group/mic [...] 2999a9159f
 
A priori, il faut que tu le fasse en VBS

Reply

Marsh Posté le 13-11-2007 à 10:54:42    

armyman a écrit :

Tiens, lis ca (la réponse):
http://groups.google.com/group/mic [...] 2999a9159f
 
A priori, il faut que tu le fasse en VBS


 
Merci à toi, c'est à peu près ce que je rencontre comme problème.
Je regarde ça.
 
 :hello:


---------------
- Feed-back - - Jeu du moment: J’ai un backlog monstre sur Switch - C'est moi Bananecafe
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed