3 votes

Comment créer un tableau à partir d'un fichier txt dans un fichier batch ?

J'ai un fichier txt avec les données suivantes

aaaa 1000 2000
bbb  3000 4000
cccc 5000 
ddd  6000 7000 8000 

Le nombre de lignes dans ce fichier n'est pas fixe.

J'ai besoin du premier jeton de chaque ligne dans un tableau et d'imprimer chaque élément.

13voto

Aacini Points 19316

Pour créer le tableau :

setlocal EnableDelayedExpansion

set i=0
for /F %%a in (theFile.txt) do (
   set /A i+=1
   set array[!i!]=%%a
)
set n=%i%

Pour imprimer les éléments d'un tableau :

for /L %%i in (1,1,%n%) do echo !array[%%i]!

Si vous voulez passer le nom et la longueur du tableau comme paramètres de la sous-routine, utilisez cette méthode :

call theSub array %n%

:theSub arrayName arrayLen
for /L %%i in (1,1,%2) do echo !%1[%%i]!
exit /B

2voto

akf Points 23518

Essayez ceci :

@echo off
for /F "tokens=1,2*" %%x in  (myFile.txt) do echo %%x

le double % est nécessaire pour l'utilisation dans un fichier batch, mais vous pouvez le tester sur la ligne cmd avec un simple % s.

en bref, le for itérera sur myFile.txt coupe chaque ligne en deux jetons en utilisant le délimiteur par défaut (espace).

0voto

Shahim Khlaifat Points 40

Essayez ceci et appelez-le de n'importe où

@echo off

for /f "usebackq" %%a in ('%2') do set d=%%~a
for /f "usebackq tokens=* delims=%d%" %%G in ('%3')  do set %1=%%~G

set /a i=-1

for %%h in (!%1!) do (
set /a i+=1
set %1[!i!]=%%h
)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X