如何从批处理文件中的文本文件中获取字符串?
我有一个文本文件,这样如何从批处理文件中的文本文件中获取字符串?
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
@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。
我拖动文本但它不起作用 – AlperTheCoder
@AlperTheCoder,“它不工作”不是一个非常精确的故障描述,是吗? – aschipfl
Ops!如果文件名可能包含空格或特殊字符,for/f需要' usebackq'开关,如注释中所示的@aschipfl ... – Aacini
当然你的意思是,'set'array [!i!] = %% a“'。 – Compo
没有想到IN子句的括号对于FOR命令是可选的。 – Squashman
你在使用它之前增加了i,所以你也得到了一个错误的问题。 – SomethingDark