Remplacement de caractère dans une chaîne - Shell/Batch - Programmation
Marsh Posté le 13-12-2010 à 18:44:46
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.
Marsh Posté le 15-12-2010 à 18:40:40
Xspawn_Lpc a écrit : la commande set str=%res: =% ne peut pas fonctionner puisque la valeur %res% n'existe nul part dans 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"
Marsh Posté le 15-12-2010 à 22:43:54
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
Marsh Posté le 16-12-2010 à 10:19:37
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
Marsh Posté le 16-12-2010 à 10:54:13
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 :
|
Ce code supprime donc bien les espaces dans la chaîne de caractère
Marsh Posté le 16-12-2010 à 20:21:11
bien joué
Marsh Posté le 10-12-2010 à 12:21:58
Bonjour,
J'ai écrit le code ci-dessous pour extraire la taille disque restante :
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