Bonjour,

J'ai encore un petit problème avec mon script.

pour rappel => (http://www.developpez.net/forums/d82...e/#post4751606)

Je cherche à faire un script qui lit une ligne passée en argument par lot de 205 caractères, rempli des variables avec ces caractères, puis boucle sur les 205 caractères suivants.

voici le code que j'utilise:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
::@echo off
setlocal EnableDelayedExpansion

echo^=^>line.bat
pause>nul

set start=0
set end=205

set LINE=%1 
set LINE=%LINE:&=E%

set LINE=%LINE:~1,-2%

:continue
if "!LINE!" == "" (goto :fin_ligne)
::pause>nul

set IDEN=%LINE:~0,1%

::if "%IDEN%"=="1" ( goto :suite ) else ( goto :boucle )

:suite
set NUMENR=%LINE:~1,8%
echo numero d'enregistrement: %NUMENR%

set REF=%LINE:~9,19%
echo reference: %REF%

...

set DATEOPEN=%LINE:~62,8%
set day=%DATEOPEN:~0,2%
set month=%DATEOPEN:~2,2%
set year=%DATEOPEN:~4,4%

set DATEOPEN=%day%/%month%/%year%
echo date ouverture: %DATEOPEN%

...

:boucle
set /a start=%end%
set /a end=%end%+205
set LINE=!LINE:~%start%!
goto :continue


:fin_ligne
ENDLOCAL
set LINE=
::set start=0
::set end=206
J'ai mis en commentaire les instructions de test, pour voir si le code donne les même erreurs l'orsqu'il doit tout afficher, et je constate la chose suivante:

dans le fichier de résultat, j'obtiens le premier lot, le deuxième, le quatrième, le 7ième, le 11ième, le 16ième, ...
en gros, il passe à chaque fois i=i+1 lignes entre deux lectures de lots.
Pourquoi?

Est-ce en rapport avec le fait que je fait appel à la même variable pour traiter la ligne?

Merci d'avance de votre aide!