Batch, incrementer des variables [Résolu/Fermé]

Signaler
Messages postés
419
Date d'inscription
vendredi 28 mars 2014
Statut
Membre
Dernière intervention
25 décembre 2019
-
Messages postés
419
Date d'inscription
vendredi 28 mars 2014
Statut
Membre
Dernière intervention
25 décembre 2019
-
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

Messages postés
18222
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 septembre 2020
5 002
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:>
Messages postés
419
Date d'inscription
vendredi 28 mars 2014
Statut
Membre
Dernière intervention
25 décembre 2019
19
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
Messages postés
419
Date d'inscription
vendredi 28 mars 2014
Statut
Membre
Dernière intervention
25 décembre 2019
19
ok j'ai reussie merci