Batch, incrementer des variables

Résolu
poparnassus Messages postés 426 Date d'inscription   Statut Membre Dernière intervention   -  
poparnassus Messages postés 426 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION 
Mode con cols=80 lines=35
@for %%n in (%0) do set chemin=%%~dpn

::---------------------------------------------------------------
:Environnement
set tempx=!chemin!tempx\

set tableau=!tempx!tableau.txt

del /Q !tempx!

::---------------------------------------------------------------
:Configuration
set /a cols_max=10
set /a lign_max=20
set /a boucle_main=0
::---------------------------------------------------------------
:init

::---------------------------------------------------------------
:main
set /a boucle_main+=1
set /a boucle_ligne=0
set /a lign=0
set /a cols=0

:ligne
set /a boucle_colonne=0
set /a boucle_ligne+=1
set /a lign+=1
set /a cols=0

	:colonne
	set /a cols+=1	
	set /a boucle_colonne+=1
	set /a var!cols!=L!lign!_C!cols!
	
	if not !cols!==!cols_max! goto colonne

cls
set /a charg_main=100*((!lign!)/!lign_max!)
echo [!charg_main!%%]
if not !charg_main!==100 goto ligne




je souhaite ecrire dans mon fichier tableau mes variables var!cols! donc qui s'incremente a chaque tour de boucle ligne et colonne.

Je veux les ecrires par ligne, car var!cols! est dynamique, pour lexemple j'ai defini une limite mais cette limite sera variable.
donc le resultat que je veux dans mon fichier tableau:

ligne1= L1_C1,L1_C2,L1_C3,L1_C4,L1_C5,etc
ligne2= L2_C1,L2_C2,L2_C3,L2_C4,L2_C5, etc

Pour recuperer les valeur j'utilises ses deux boucles, mais voila je n'arrive pas a m'en servir pour definir toute mes variable L1_C1 à Ln_Cn..
::for /f "tokens=%tokenboucle1% delims=," %%a in ("!tableau!") do ( set data_mot_rch=%%a)
::for /f "tokens=1,* delims=:" %%a in ('findstr /n /r . "!tableau!" ^| findstr "^^%boucle_ligne%:"') do (set data_S1=%%b)

1 réponse

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 636
 
hello
C:> type aa.bat
@echo off
setlocal enableDelayedExpansion
for /L %%a in (1,1,5) do (
set l=ligne%%a=
for /L %%b in (1,1,5) do (
set l=!l!L%%a_C%%b,
)
set l=!l:~0,-1!
echo !l!
)

C:> aa
ligne1=L1_C1,L1_C2,L1_C3,L1_C4,L1_C5
ligne2=L2_C1,L2_C2,L2_C3,L2_C4,L2_C5
ligne3=L3_C1,L3_C2,L3_C3,L3_C4,L3_C5
ligne4=L4_C1,L4_C2,L4_C3,L4_C4,L4_C5
ligne5=L5_C1,L5_C2,L5_C3,L5_C4,L5_C5

C:>
0
poparnassus Messages postés 426 Date d'inscription   Statut Membre Dernière intervention   30
 
ok merci j'avais pas penser a utiliser la boucle de cette maniere, par contre jai essayer de rajouter un ! à cette variable :
set l=!l!L%%a_C%%b,

qui donne

set l=!l!^!L%%a_C%%b^!,

pour que a chaque ligne j'ai !L1_C1!,!L1_C2!, etc, mais ca marche pas
0
poparnassus Messages postés 426 Date d'inscription   Statut Membre Dernière intervention   30
 
ok j'ai reussie merci
0