Page 1 sur 1

[Résolu]set variable=toto.txt possible ?

Posté : 10 mars 2011 23:18
par Joe cateline
Bonjour,

Ma question est dans le titre, simple je souhaiterais créer une variable qui serait un texte appelé.

Pour vous mettre dans le contexte, je fabrique un jeu qui utilise XP comme environnement (un jeu de rôle uniquement en arbres de dossiers et en batch) et je termine les finissions avec un système de combat virtuel...
En gros dans le dossier "sauvegarde continue" est placé un fichier "points de vie.txt" (contenant 1 ou 2 caractère(s) numérique(s)) qui est modifié à chaque fin de "bat de combat" pour pouvoir le rappeler au début d'un autre combat et éviter un reset de points de vie qui ne serait pas réaliste.

Donc es ce possible de faire un truk du style :

set pv="points de vie.txt"
echo Vous avez %pv% point(s) de vie
J'ai testé avec more, type, >, "", == et en mélangeant les combinaisons mais sans la moindre piste... Sur internet je ne trouve rien, à pars ma persévérance, vous êtes mon seul espoir.
D'avance merci.

Re: set variable=toto.txt possible ?

Posté : 11 mars 2011 13:54
par plopi
il faut utiliser la fonction "for" pour ce type de manip :

Code : Tout sélectionner

for /f %i in (points de vie.txt) do set pv=%i
echo %pv%
 
PS : Petit conseil annexe, évite de placer des "espaces" dans les noms de fichier ;) , genre "points de vie.txt" c'est mieux écrit comme ça : points_de_vie.txt

Enjoy

Re: set variable=toto.txt possible ?

Posté : 11 mars 2011 22:57
par Joe cateline
Ha ok, je ne suis pas encore très à l'aise avec la commande "FOR", je débute mais merci encore, c'est la seconde fois que tu me viens en aide, merci beaucoup.

Re: set variable=toto.txt possible ?

Posté : 14 mars 2011 23:15
par Joe cateline
Mince, je tombe encore sur un os...

la commande marche bien mais si le contenu du texte qui va définir la variable est trop long, ça ne comptera que les 7 premiers caractères du texte.
Dans mon jeu, ce n'est plus les points de vie mais d'autres variables tel que l'arme ou l'armure équipée et là, le texte "armure.txt" contient plus que juste 2 ou 3 chiffres mais une dizaines de caractères.
d'avance merci.

Re: set variable=toto.txt possible ?

Posté : 16 mars 2011 02:50
par DarkBatcher
hello!

c'est à cause des delims=:

Code : Tout sélectionner

FOR /f "tokens=*" %%I IN(Fichier.txt) Do SET PV=%%i

Re: set variable=toto.txt possible ?

Posté : 16 mars 2011 17:55
par Joe cateline
Merci DarkBatcheur, ça marche nickel !