Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1751 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [BATCH] Commande set

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[BATCH] Commande set

n°1639211
numrobis
Code ami: 0726-2419-2891
Posté le 08-11-2007 à 15:09:52  profilanswer
 

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
mood
Publicité
Posté le 08-11-2007 à 15:09:52  profilanswer
 

n°1639249
Coolnut
Posté le 08-11-2007 à 15:26:56  profilanswer
 

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
n°1639261
numrobis
Code ami: 0726-2419-2891
Posté le 08-11-2007 à 15:37:19  profilanswer
 

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
n°1639694
wackevat
Posté le 09-11-2007 à 07:55:01  profilanswer
 

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%

n°1639709
numrobis
Code ami: 0726-2419-2891
Posté le 09-11-2007 à 08:48:10  profilanswer
 

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
n°1639795
numrobis
Code ami: 0726-2419-2891
Posté le 09-11-2007 à 10:46:20  profilanswer
 

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
n°1640785
armyman
Posté le 10-11-2007 à 23:53:23  profilanswer
 

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

n°1642025
numrobis
Code ami: 0726-2419-2891
Posté le 13-11-2007 à 10:54:42  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [BATCH] Commande set

 

Sujets relatifs
Commande ftp dans un batch[Batch - Win XP] Commande ECHO et "&"
[shell/batch] quelle commande utiliser ?[Batch] Créer une exception pour la commande DEL
Commande BATCH : Ecran en veille / pc en veille prolongée[BATCH]Changer mode de compatibilité en ligne de commande
[BATCH] petite aide pour syntaxe subsitution commande[Batch Dos][Résolu] cacher l'invite de commande
Batch - Erreur d'utilisation de la commande ncftpgetBatch - Obtenir le poids d'un fichier avec la commande ForFile.exe
Plus de sujets relatifs à : [BATCH] Commande set


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR