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:
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:
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
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!
Partager