Script BATCH, Incrémenté le nom d'une variable

Fermé
poparnassus Messages postés 426 Date d'inscription vendredi 28 mars 2014 Statut Membre Dernière intervention 25 décembre 2019 - Modifié par poparnassus le 1/11/2015 à 14:04
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 - 3 nov. 2015 à 10:20
Bonjour,

Sous windows7 script batch,

je souhaite incrémenté le nom d'une variable, comment faire ?

:start
@echo off
setlocal enabledelayedexpansion
mode con cols=100 lines=30

:initialisation variable
set fichier1=base1
set fichier2=texte_crypt.txt
: Je transmet le contenue du fichier1,2 dans les variable var1,2
set /P var2= < !fichier2!
set /P var1= < !fichier1!
set /A tour=0

token1=1^,2^,3^,4^,5^,6^,7^,8^,9^,10^,11^,12^,13^,14^,15^,16^,17^,18^,19^,20^,21^,22

^,23^,24^,25^,26
set

token2=2^,4^,6^,8^,10^,12^,14^,16^,18^,20^,22^,24^,26^,1^,3^,5^,7^,9^,11^,13^,15^,17

^,19^,21^,23^,25
set token3=1^,2^,3^,4^,5^,6^,7^,8^,9^,10^,11

:main
cls
set /A tour=!tour!+1
set ligne=!tour!

:condition
: le programme ce termine au 10 eme tour de boucle, je voudrais qu'il se stope a la

fin du fichier texte !fichier1!
if !tour!==10 goto exit

if !tour!==1 set token=!token1!
if !tour!==2 set token=!token2!
if !tour!==3 set token=!token3!
if !tour!==4 set token=!token4!
if !tour!==5 set token=!token5!

: Cette boucle for me permet de recuperer le contenu de la ligne X du fichier text

!fichier1! à chaque tour de boucle via le compteur !tour! dans la variable !l!
: je souhaiterai incrementer ma variable !l! a chaque tour
: du genre:
: tour 1 l=%%b
: tour 2 l2=%%b
: tour 3 l3=%%b

for /f "tokens=1,* delims=:" %%a in ('findstr /n /r . "!fichier1!" ^| findstr "^

%ligne%:"') do (
set l=%%b
)



:partie2


:Ci dessous je recupere le contenue de ma variable crée precedement et la traite.

for /f "tokens=%token% delims= " %%A in ("%l%") do (set a=%%A) && (set b=%%B) &&

(set c=%%C) && (set d=%%D) && (set e=%%E) && (set f=%%F) && (set g=%%G) && (set h=%

%H) && (set i=%%I) && (set j=%%J) && (set k=%%K) && (set l=%%L) && (set m=%%M) &&

(set n=%%N) && (set o=%%O) && (set p=%%P) && (set q=%%Q) && (set r=%%R) && (set s=%

%S) && (set t=%%T) && (set u=%%U) && (set v=%%V) && (set w=%%W) && (set x=%%X) &&

(set y=%%Y) && (set z=%%Z)+

:JE souhaite que a chaque tour de boucle mes variables de "a" à "z" s'incremente
: du genre:
: 1er boucle set a=%%A ... set z=%%z
: 2eme tour boucle set a2=%%A ... set z2=%%z
: 3eme tour boucle set a3=%%A ... set z3=%%Z
pause
goto main

:exit
cls
echo FIN DU SCRIPT
pause
endlo

1 réponse

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
Modifié par dubcek le 3/11/2015 à 10:21
hello
quelque chose comme ça ?
C:> type aa.bat
@echo off
setlocal enabledelayedexpansion
set a1=111
set a2=222
set a3=333
for /L %%a in (1,1,3) do (
set x=a%%a
for /f "delims== tokens=2" %%b in ('set !x!') do echo !x! = %%b
)
C:> aa
a1 = 111
a2 = 222
a3 = 333
0