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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Remplacement de caractère dans une chaîne

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Remplacement de caractère dans une chaîne

n°2041291
antolionux
Posté le 10-12-2010 à 12:21:58  profilanswer
 

Bonjour,  
 
J'ai écrit le code ci-dessous pour extraire la taille disque restante :
 

Code :
  1. for /f "tokens=3 " %%I IN ('dir C: ^| find /I "octets libres"') DO set str=%%I
  2. set str=%res: =%
  3. echo %str%


 
Dans ce cas de figure où la variable "str" est initialisée par la commande for, la commande set str=%res: =% ne fonctionne pas (celà devrait supprimer tous les espaces)
 
En revanche si je défini manuellement la variable str (ex: set str=32 125 456 789) alors là ça fonctionne, le résultat sera bien 32123456789
 
Est-ce qu'il y'a une autre façon d'initialiser la variable str au niveau de la commande for ?
Est-ce qu'il y'a une autre méthode pour obtenir la taille disque restante
 
PS : Car sous la forme 32 564 741 789, je ne peux pas l'exploiter (Si supérieur, su inférieur, etc ...)
 
D'avance merci

mood
Publicité
Posté le 10-12-2010 à 12:21:58  profilanswer
 

n°2041871
Xspawn_Lpc
Posté le 13-12-2010 à 18:44:46  profilanswer
 

la commande set str=%res: =% ne peut pas fonctionner puisque la valeur %res% n'existe nul part dans ton script.
 
tu est censé mettre quelque chose du genre  set .... = %str= ... %
 
Essaye aussi avec SETLOCAL ENABLEEXTENSIONS au début de ton script.


---------------
Quand on aime on ne compte pas. Quel Dilemme lorsque l'on aime compter !
n°2042476
antolionux
Posté le 15-12-2010 à 18:40:40  profilanswer
 

Xspawn_Lpc a écrit :

la commande set str=%res: =% ne peut pas fonctionner puisque la valeur %res% n'existe nul part dans ton script.
 
tu est censé mettre quelque chose du genre  set .... = %str= ... %
 
Essaye aussi avec SETLOCAL ENABLEEXTENSIONS au début de ton script.


 
 
le %res% est juste une erreur de copier coller sur le forum.
J'essayerais avec SETLOCAL ENABLEEXTENSIONS
 
Parcontre si je met set str=%str:2=% là ça me supprime bien les "2", on dirait que ça ne reconnait pas les "espaces"

n°2042544
Xspawn_Lpc
Posté le 15-12-2010 à 22:43:54  profilanswer
 

euh je me suis trompé, c'est SETLOCAL ENABLEDELAYEDEXPANSION
 
c'est oui possible qu'il ait besoin d'un caractère classique.
Sinon via une boucle for y'a peut être moyen
 
for %i in (%str%) do @echo %i
 
mais bon dos pour faire ca  :(  
 
alors qu'en vbs tu récupère la taille d'un fichier/dossier directement sous forme de nombre :p


---------------
Quand on aime on ne compte pas. Quel Dilemme lorsque l'on aime compter !
n°2042593
antolionux
Posté le 16-12-2010 à 10:19:37  profilanswer
 

:( Ben non tout cela ne fonctionne pas ...
 
Apparemment c'est la variable %%I qui doit interpréter bizarrement les "espaces"
 
Car en déclarant la variable %str% manuellement ça fonctionne bien ensuite  :pfff:

n°2042607
antolionux
Posté le 16-12-2010 à 10:54:13  profilanswer
 

:bounce:  :bounce:  :bounce: J'ai trouvé !!!
 
En fait les espaces qui sont dans la variable %%I ne sont pas vraiment des espaces.
 
Ce sont des équivalent du caractère ASCII ÿ que l'on peut afficher avec la commande alt + 0255
 
Donc :
 

Code :
  1. set str=%str:ÿ=%


 
Ce code supprime donc bien les espaces dans la chaîne de caractère  :)

n°2042714
Xspawn_Lpc
Posté le 16-12-2010 à 20:21:11  profilanswer
 

bien joué ;)


---------------
Quand on aime on ne compte pas. Quel Dilemme lorsque l'on aime compter !

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

  Remplacement de caractère dans une chaîne

 

Sujets relatifs
[PERL] remplacement caractères dans une variable.[chaine] Décomposition d'une adresse postal
programme assembleur qui charge 1 chaine de caractèreprogramme assembleur/chaine de caractère
Tableau de caractère et $...prob avec chaine de caractere
Remplacement d'un caractère par un autre dans une chaine[kix] Remplacement d'une chaine de caractère
Remplacement de chaine de caractèreRemplacement/suppression d'un chaine de caractère dans un fichier
Plus de sujets relatifs à : Remplacement de caractère dans une chaîne


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