Signaler

Batch, incrementer des variables [Résolu]

Posez votre question poparnassus 257Messages postés vendredi 28 mars 2014Date d'inscription 27 septembre 2016 Dernière intervention - Dernière réponse le 21 sept. 2016 à 22:52
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)
Afficher la suite 
Utile
+0
moins plus
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:>
poparnassus 257Messages postés vendredi 28 mars 2014Date d'inscription 27 septembre 2016 Dernière intervention - 21 sept. 2016 à 22: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
Répondre
poparnassus 257Messages postés vendredi 28 mars 2014Date d'inscription 27 septembre 2016 Dernière intervention - 21 sept. 2016 à 22:52
ok j'ai reussie merci
Répondre
Ajouter un commentaire

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !