2017-02-24 146 views
3

我有一個文本文件,這樣如何從批處理文件中的文本文件中獲取字符串?

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

回答

3
@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

相關問題