Как создать массив из текстового файла в пакетном файле? - PullRequest
3 голосов
/ 26 февраля 2012

У меня есть текстовый файл с данными ниже

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

Номера строк в этом файле не фиксированы.

Мне нужен первый токен каждой строки в массиве и чтобыпечатать каждый элемент.

Ответы [ 3 ]

13 голосов
/ 26 февраля 2012

Для создания массива:

setlocal EnableDelayedExpansion

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

Для печати элементов массива:

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

Если вы хотите передать имя массива и длину в качестве параметров подпрограммы, используйте этот способ:

call theSub array %n%

:theSub arrayName arrayLen
for /L %%i in (1,1,%2) do echo !%1[%%i]!
exit /B
2 голосов
/ 26 февраля 2012

попробуйте это:

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

двойной % требуется для использования в командном файле, но вы можете проверить его в строке cmd с одним % s.

в двух словах, for будет перебирать myFile.txt, разбивая каждую строку на два токена, используя разделитель по умолчанию (пробел).

0 голосов
/ 19 июля 2015

попробуйте и позвоните из любой точки

@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
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...