如何从批处理文件中的文本文件中获取字符串?

问题描述:

我有一个文本文件,这样如何从批处理文件中的文本文件中获取字符串?

MYFILE.TXT:

apple 
banana 
grapes 

我想拖动文本文件,批处理文件和设置变量到像这样的数组:

array[0]=apple 
array[1]=banana 
array[2]=grapes 

但我不能那样做。我的问题不只是印刷他们,但我甚至不能这样做。我会在批处理文件的其余部分解析操作。 我的代码:

@echo off 
setlocal EnableDelayedExpansion 

set i=0 
for /f %%a in %1 do (
set /a i+=1 
set array[!i!]=!a! 
) 
echo %array[0]% 
echo %array[1]% 
echo %array[2]% 
endlocal 
+4

当然你的意思是,'set'array [!i!] = %% a“'。 – Compo

+4

没有想到IN子句的括号对于FOR命令是可选的。 – Squashman

+4

你在使用它之前增加了i,所以你也得到了一个错误的问题。 – SomethingDark

@echo off 
setlocal EnableDelayedExpansion 

set i=0 
for /f "usebackq" %%a in ("%~1") do (
    set /a i+=1 
    set array[!i!]=%%a 
) 
echo %array[1]% 
echo %array[2]% 
echo %array[3]% 

rem Or: 

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

endlocal 
pause 

我建议你阅读this answer

+0

我拖动文本但它不起作用 – AlperTheCoder

+2

@AlperTheCoder,“它不工作”不是一个非常精确的故障描述,是吗? – aschipfl

+0

Ops!如果文件名可能包含空格或特殊字符,for/f需要' usebackq'开关,如注释中所示的@aschipfl ... – Aacini