recupérer un nombre dans un fichier texte grace a un Bat - Shell/Batch - Programmation
Marsh Posté le 23-08-2007 à 19:01:00
for /f "tokens=2 delims=.]" %%a in ('type Scenery.cfg ^| findstr "Area"') do set var=%%a
set /a var+=1
echo.>> Scenery.cfg
echo [Area.%var%]>> Scenery.cfg
echo Title=absdef>> Scenery.cfg
echo Layer=%var%>> Scenery.cfg
echo Active=TRUE>> Scenery.cfg
echo Required=FALSE>> Scenery.cfg
echo Local=Addon Scenery\abcdefghi>> Scenery.cfg
echo Remote=>> Scenery.cfg
Marsh Posté le 23-08-2007 à 19:26:00
slt
Merci pour ton aide
Cela fonctione sauf pour la ligne "echo Layer=%var%>> Scenery.cfg "
en effet, elle n'apparait pas dans mon fichier Scenery.cfg
Vois tu d'ou peut venir le probleme ?
Pour savoir, que signifie "tokens=2" ?
Merci
Newoobs
Marsh Posté le 23-08-2007 à 19:33:53
echo Layer=%var% >> Scenery.cfg
Juste un espace après %var%
Pour des explications sur les commandes tu tapes : for /?
dans une invite de commande et t'as l'aide.
En gros, ('type Scenery.cfg ^| findstr "Area"') sort la ligne comportant Area, donc : [Area.XXX]
et la commande FOR pose comme delimiteurs le . et le ] et donc TOKENS sert a selectionné des parties de cette ligne.
Si on aurait mit TOKENS=1 il nous aurait sortie : Area
Si on aurait mit TOKENS=1,2 dans la variable %%a on aurait Area et dans %%b on aurait XXX
Voila j'sais pas si j'explique bien :x
Marsh Posté le 23-08-2007 à 19:38:16
slt
merci effectivement cela fonctionne. Merci pour tes explications, j'ai compris a peu pres comment cela fonctionne
A++++
newoobs
Marsh Posté le 23-08-2007 à 18:34:53
slt
voila j'ai un fichier "Scenery.cfg" qui est composé de plusieurs "paragraphes" de ce genre :
[Area.XXX]
Title=YYYY
Layer=XXX
Active=TRUE
Required=FALSE
Local=Addon Scenery\YYYY
Remote=
Mon bute est grace a un fichier bat d'insérer après le dernier "paragraphe" un saut de ligne puis un autre paragraphe, j'aurais donc :
[Area.XXX]
Title=YYYY
Layer=XXX
Active=TRUE
Required=FALSE
Local=Addon Scenery\ZZZZZ
Remote=
[Area.XXX] <----- Ici je veux remplacer mes XXX par XXX + 1 c'est a dire que si j'ai 122 j'aurais 123
Title=abcdef
Layer=XX <----- Ici je veux faire la même chose
Active=TRUE
Required=FALSE
Local=Addon Scenery\abcdefghi
Remote=
Qu'elles commandes dois je utiliser pour "lire" cette ligne particulière (la dernière ligne "[Area.XXX]" du fichier texte) puis pour copier la valeur du nombre XXX et l'incémenter de 1 pour la réécrire par la suite ds mon paragraphe ?
Je vous remercie d'avance pour votre aide
Newoobs