逐行读取文本文件并使用批处理脚本将其存储在数组中

Nag*_*hmi 6 windows batch-file

我想读取一个文本文件并将每一行存储在一个数组中.当我使用下面的代码时,每次"echo %i%"都打印0,只array[0]分配值.但是,在值中"set n=%i%",n值被指定为最后一个递增的I 值."@echo !array[%%i]!"也是打印!array[0]!而不是打印值.代码中是否有语法错误?

set /A i=0

for /F %%a in (C:\Users\Admin\Documents\url.txt) do (

set /A i+=1

echo %i%

set array[%i%]=%%a

)

set n=%i%

for /L %%i in (0,1,%n%) do @echo !array[%%i]!
Run Code Online (Sandbox Code Playgroud)

fox*_*ive 11

这是一个有时非常有用且与代码非常相似的方法:

@echo off
set "file=C:\Users\Admin\Documents\url.txt"
set /A i=0

for /F "usebackq delims=" %%a in ("%file%") do (
set /A i+=1
call echo %%i%%
call set array[%%i%%]=%%a
call set n=%%i%%
)

for /L %%i in (1,1,%n%) do call echo %%array[%%i]%%
Run Code Online (Sandbox Code Playgroud)