[Batch] Problème lecture de fichier .txt
Résolu
Bonjour,
je suis débutant en batch et j'ais fait un petit programme permettant de lire un fichier .txt et d'associer une ligne à une variable ( la ligne 1 dans var1, la ligne 2 dans var2, etc ). Le voici :
@echo off
set ligne=1
for /f %%X in (test.txt) do (
set var%ligne%=%%X
set /a ligne= %ligne%+1
)
echo %var1%
echo %var2%
echo %ligne%
pause
Mais le problème est que la 5ème et dernière ligne rentre dans var1 et les autres variable sont vide alors que ligne vaut 6 ( ce qui est par contre normal ). Est-ce que quelqu'un pourrait m'expliquer pourquoi ?
Merci d'avance.
je suis débutant en batch et j'ais fait un petit programme permettant de lire un fichier .txt et d'associer une ligne à une variable ( la ligne 1 dans var1, la ligne 2 dans var2, etc ). Le voici :
@echo off
set ligne=1
for /f %%X in (test.txt) do (
set var%ligne%=%%X
set /a ligne= %ligne%+1
)
echo %var1%
echo %var2%
echo %ligne%
pause
Mais le problème est que la 5ème et dernière ligne rentre dans var1 et les autres variable sont vide alors que ligne vaut 6 ( ce qui est par contre normal ). Est-ce que quelqu'un pourrait m'expliquer pourquoi ?
Merci d'avance.
2 réponses
-
Bonjour,
Tu es dans un cas de figure où il faut utiliser l'expansion retardée des variables, voilà comment faire :
@echo off
setlocal enableDelayedExpansion
set /a ligne=1
for /f %%X in (test.txt) do (
set var!ligne!=%%X
set /a ligne=!ligne!+1
)
echo %var1%
echo %var2%
echo !ligne!
pause
-
Merci beaucoup de ton aide ça fonctionne parfaitement